![JavaScriptDOM编程_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/13/ac258540-4c83-4208-b85a-be13e82fd691/ac258540-4c83-4208-b85a-be13e82fd6911.gif)
![JavaScriptDOM编程_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/13/ac258540-4c83-4208-b85a-be13e82fd691/ac258540-4c83-4208-b85a-be13e82fd6912.gif)
![JavaScriptDOM编程_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/13/ac258540-4c83-4208-b85a-be13e82fd691/ac258540-4c83-4208-b85a-be13e82fd6913.gif)
![JavaScriptDOM编程_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/13/ac258540-4c83-4208-b85a-be13e82fd691/ac258540-4c83-4208-b85a-be13e82fd6914.gif)
![JavaScriptDOM编程_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/13/ac258540-4c83-4208-b85a-be13e82fd691/ac258540-4c83-4208-b85a-be13e82fd6915.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 北京传智播客教育 JavaScript DOMJavaScript DOM编程编程讲师:赵晓虎讲师:赵晓虎高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 课程说明l内容:使用JavaScript操作DOM进行DHtml开发。l目标:能够使用JavaScript操作DOM实现常见的DHtml效果。l参考书:张孝祥JavaScript网页开发体验式学习教程高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 为什么要学习JavaScript操作DOMlJavaScript最终是要操作Html页面,让Ht
2、ml变成DHtml,而操作Html页面就要用到DOM。DOM就是把Html页面模拟成一个对象,就像XDocument一样,把Xml模拟成了一个对象,提供了操作各个节点的方法,直接调用就可以了。l如果JavaScript只是执行一些计算、循环等操作,而不能操作Html也就失去了它存在的意义。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 DOM入门(把标签当做对象来处理)lDOM就是Html页面的模型,将每个标签都做为一个对象,JavaScript通过调用DOM中的属性、方法就可以对网页中的文本框、层等元素进行编程控制。比如通过操作文本框的DOM对象,就可以读取文本框中的值、设
3、置文本框中的值。 JavaScriptDOM就是C#.Net Framwork。没有.net,C#只能for、while,连WriteLine、MessageBox都不行。DOM就是一些让JavaScript能操作Html页面控件的类、函数。lDOM也像WinForm一样,通过事件、属性、方法进行编程。lCSS+JavaScript+DOM=DHtmll学习阶段只考虑IE。用IE Collection安装IE所有版本,学习使用IE6(要调试必须使用本机安装的版本)。/js DOM在不同的浏览器下支持不一样。(IETester)高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 D
4、OM模型高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 获取页面元素lwindow.idldocument.getElementById()高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 事件l在DOM中有很多事件。演示:1. /注意body的范围。2.有时事件的响应代码比较多,就要放到一个函数中: function UserMouseDown() alert(网页被你点坏了_,赔吧!); alert(逗你玩呢); lonmousedown=“UserMouseDown();”中,UserMouseDown后的括号不能丢(不能写成onmousedown=“U
5、serMouseDown” ),带()表示调用函数,直接写函数名表示设置事件的处理函数为UserMouseDown。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 动态设置事件lJavaScript也可以像.Net中那样动态设置事件,Button.Click+=function F1() alert(In F1); function F2() alert(In F2); l注意: onclick=“document.onclick=F1;” 此处的F1不要加括号,加括号就编程了调用F1()函数,并且把返回值赋值给document.onclick了。l可以通过winform的事
6、件来演示onclick=“hanshu()”与onclick=hanshu;的区别。如果讲解,见备注1.高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象(Dom中的一个顶级对象。)lwindow对象代表当前浏览器窗口。l使用window对象的属性、方法的时候可以省略window。l比如:window.alert(hello);可以省略成alert(hello);window.document可以直接写documentl能不写window就不要写,这样可以减少js文件的字节数。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象的方
7、法1lwindow.alert(大家好!);/弹出警告对话框lwindow.confirm(确定要删除吗?);/确定、取消对话框,返回true或false;lwindow.navigate(url);/将网页重新导航到url,只支持IE、Opera11.6,建议使用window.location.href=url;/支持大多数浏览器高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象的方法2lwindow.setInterval(code,delay)/每隔一段时间执行指定的代码(类似于winForm中的Timer控件。)第一个参数:指定的代码字符串第二个参数:时
8、间间隔(毫秒数)var intervalId=setInterval(“alert(hello);”,1000);lwindow.clearInterval(intervalId);/停止计时器clearInterval()取消setInterval的定时执行,相当于Timer中的Enabled=False。因为setInterval可以设定多个定时,所以clearInterval要指定清除那个定时器的标识,即setInterval的返回值。案例:文本框自增。进度条案例:见备注1.高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象的方法3lsetTimeout也
9、是定时执行,但是不像setInterval那样是重复的定时执行,只执行一次只执行一次,clearTimeout也是清除定时。很好区分:Interval:间隔;timeout:超时。var timeoutId = setTimeout(alert(hello), 2000);l案例:实现标题栏走马灯的效果,也就是浏览器的标题文字每隔500ms向右滚动一下。提示:标题为document.title属性。实现代码参考备注。l练习:刚进入的时候还是向左滚动,点击【向左】按钮就向左连续滚动,点击【向右】按钮就向右连续滚动。思路1、”全局变量”,标志当前的滚动方向,当点击向左的时候dir=left,向右d
10、ir=right。思路2、scrollleft scroolright,向右滚的时候将scrollleft的Interval clear掉,然后setInterval启动scrollrightl延迟操作。见备注1.高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 body、document对象的事件lonload(页面加载后触发)网页加载完毕时触发,浏览器是一边下载文档、一边解析执行,可能会出现JavaScript执行时需要操作某个元素,这个元素还没有加载,如果这样就要把操作的代码放到body的onload事件中,或者可以把JavaScript放到元素之后。元素的onload事
11、件是元素自己加载完毕时触发,body onload才是全部加载完成。window.控件Id(不建议使用)document.getElementById(“控件Id”);(推荐)lonunload(页面卸载后触发)网页关闭(或者离开)后后触发。/刷新页面的时候、关闭选项卡的时候(多个选项卡)lonbeforeunload(页面卸载前触发)在网页准备关闭(或者离开)前触发。/注意浏览器缓存。显示的文字随浏览器版本而有差异。/ =“window.event.returnValue=只兼容IE高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 其他事件l除了属性之外,当然还有通用的HTM
12、L元素的事件:onclick(单击)、ondblclick(双击)、onkeydown(按键按下)、onkeypress(点击按键)、onkeyup(按键释放)、onmousedown(鼠标按下)、onmousemove(鼠标移动)、onmouseout(鼠标离开元素范围)、onmouseover(鼠标移动到元素范围)、onmouseup(鼠标按键释放)、oncontextmenu(在浏览器中单击鼠标右键显示”右键菜单”时触发)等。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象的属性1lwindow.location对象:window.location.hr
13、ef=;/重新导航到新页面,可以取值,也可以赋值。window.location.reload();/刷新当前页lwindow.event是IE下非常重要的属性,用来获得发生事件时的信息,事件不局限于window对象的事件,所有元素的事件都可以通过event属性取到相关信息。类似于winForm中的e(EventArgs)。/兼容IE、Chrome,不兼容FF(用event参数)。window.event.altKey属性,bool类型,表示事件发生时是否按下了alt键。类似的还有ctrlKey,shiftKey。演示: ;高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 wi
14、ndow对象的属性2lwindow.event的属性(接上页):clientX、clientY 发生事件时鼠标在客户区的坐标;screenX、screenY 发生事件时鼠标在屏幕上的坐标;offsetX、offsetY 发生事件时鼠标相对于事件源(比如点击按钮时触发onclick)的坐标。当页面中有!DOCTYPE(文档定义)时,对offsetX和offsetY单击时的解析不同(使用onmousedown的时候与onclick测试结果不同。 )。(单击按钮中文字的时候。)(window.event.returnValue)returnValue属性,如果将returnValue设置为false
15、,就会取消默认事件的处理。在超链接的onclick里面禁止访问href的页面。在表单校验的时候禁止提交表单到服务器,防止错误数据提交给服务器、防止页面刷新。(onsubmit=window.event.returnValue=false;)window.event.returnValue不兼容火狐浏览器FireFox:e. preventDefault();取消事件的默认动作。直接写return false;IE、FF、Chrome都可以。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象的属性3lwindow.event的属性(接上页):srcElement:
16、获得事件源对象。几个按钮共享一个事件响应函数用。*_click(object sender,EventArgs e)/IE、Chrome支持。见备注1。/FF下用e.target;button,发生事件时鼠标按键,IE:1为左键,2为右键,s4中滑轮/要测试event.button的值的时候,请在onmousedown事件中测试。在onclick事件中只能识别鼠标左键的单击。不同浏览器返回值可能不一样。 (不同浏览器值不一样)除IE浏览器外,其他浏览器在绑定事件处理函数时,有一个默认的参数即event对象。l(*)screen对象,获取屏幕的信息:alert(分辨率: + screen.wid
17、th + * + screen.height); if (screen.width 1024 | screen.height 768) alert(分辨率太低!); 高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象的属性4lclipboardData对象,对粘贴板的操作。/只支持IE,FF参考资料setData(Text,val),设置粘贴板中的值。getData(“Text”)读取粘贴板的值,返回值为粘贴板中的内容;clearData(“Text”)清空粘贴板;案例:复制地址给友好。见备注。当复制的时候body的oncopy方法被触发,直接return fa
18、lse就是禁止复制。body oncopy=alert(禁止复制!);return false;很多元素也有oncopy(复制)、onpaste(粘贴)事件:oncut案例:禁止粘贴帐号。见备注。案例:在网站中复制文章的时候,为了防止那些”拷贝党”不添加文章来源,自动在复制的内容后添加版权声明。代码见下页:高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象的属性4l代码:function modifyClipboard() clipboardData.setData(Text, clipboardData.getData(Text) + 本文来自传智播客技术专区
19、,转载请注明来源。 + location.href);oncopy=setTimeout(modifyClipboard(),100)“用户复制动作发生0.1秒以后再去改粘贴板中的内容。100ms只是一个经常取值,写1000、10、50、200都行。不能直接在oncopy里修改粘贴板。不能直接在oncopy中执行对粘贴板的操作,因此设定定时器,0.1秒以后执行,这样就不再oncopy的执行调用栈上了。lhistory操作历史记录。window.history.back()后退;window.history.forward()前进。window.history.go(-1)后退、window.h
20、istory.go(1)前进高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象的属性5-documentldocument属性:document属性是window对象中最复杂的属性。因为使用window对象成员的时候可以省略window.,所以一般直接写document。document的方法:write();/向文档中写入内容。writeln(),和write差不多,只不过最后添加一个回车。在onclick等事件中写的代码会冲掉页面中的内容,只有在页面加载过程中只有在页面加载过程中write才会与原有内容融合在一才会与原有内容融合在一起。起。writeln()
21、是在源代码里面换行。与是在源代码里面换行。与不一样。不一样。document.write()经常在广告代码、整合资源代码中被使用。见备注。内容联盟、广告代码、cnzz,不需要被主页面的站长去维护内容,只要被嵌入的js内容提供商修改内容,显示的内容就变了。(使用pre标签看write()与writeln()的区别,效果,见备注1)Js脚本一执行就会访问服务器。超链接诶还需要点击。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象的属性6-documentl最基本的DOM遍历演示。见备注1。(*)lgetElementById(), (非常常用),根据元素的Id获得
22、对象,网页中id不能重复。也可以直接通过元素的id来引用元素,但是有有效范围、form1.textbox1之类的问题(当元素放在form中的时候(在html页面中需要通过form.元素id),因此不建议直接通过id操作元素,而是通过getElementById。lgetElementsByName(),根据元素的name获得对象,由于页面中元素的name可以重复,比如多个RadioButton的name一样,因此getElementsByName返回值是对象数组。lgetElementsByTagName(),获得指定标签名称的元素数组,比如getElementsByTagName(“p”)可
23、以获得所有的标签。*表示所有标签。l此处切忌不要使用forin循环(forin循环循环的是键值对,不是对象本身。)。(问题多多:radio时有相同的key,第一个key是length等等。)建议:使用for循环。 document.getElementById()/document.allid(*)高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 window对象的属性7-documentl案例:点击一个按钮,被点击的按钮显示“呜呜”,其他按钮显示“哈哈”。l案例:十秒钟后协议文本框下的注册按钮才能点击,时钟倒数。(btn.disabled = “” ,让元素可用。disabl
24、ed=disabled,为不可用)disabled=true;l练习:加法计算器。两个文本框中输入数字,点击【=】按钮将相加的结果放到第三个文本框中。l练习:美女时钟。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 事件冒泡l事件冒泡:如果元素A嵌套在元素B中,那么A被点击不仅A的onclick事件会被触发,B的onclick也会被触发。触发的顺序是“由内而外” 。验证:在页面上添加一个table、table里有tr、tr里有td,td里放一个p,在p、td、tr、table中添加onclick事件响应,见备注。l取消事件冒泡: window.event.cancelBubb
25、le = true;/IE下的写法。下的写法。lSpan设置display:block;以后再设置height,width才会有效。lwindow.onload与body的onload1.二者效果完全一样,都是在页面内容都加载完毕后才触发。2.由于网页中没有window所以在body中写onload3.建议使用window.onload/使用js脚本的方式高效4.其实应该是document.onload,但是所有浏览器都实现到了window对象上。s高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 事件中的thisl事件中的this。除了可以使用event.srcElement
26、在事件响应函数中,this表示发生事件发生事件的控件。只有在事件响应函数才能使用this获得发生事件的控件,在事件响应函数调用的函数中不能使用(这里的this表示window对象),如果要使用则要将this传递给函数或者使用event.srcElement。(*)this和event.srcElement的语义是不一样的,this就是表示当前监听事件的这个对象,就是表示当前监听事件的这个对象,event.srcElement是引发事件的对象是引发事件的对象:事件冒泡事件冒泡。ll1.通过“事件冒泡”说明this与window.event.srcElement的区别。l2.通过onclick=f
27、1;与onclick=“f1();”在f1中使用this,说明this在不同情况下的使用区别。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 动态创建DOMldocument.write只能在页面加载过程中才能动态创建。l可以调用document的createElement方法来创建具有指定标签的DOM对象,然后通过调用某个元素的appendChild();方法将新创建元素添加到相应的元素下。/父元素对象.removeChild(子元素对象);删除元素。function showIt() var divMain = document.getElementById(divMai
28、n); var btn = document.createElement(input); btn.type = button; btn.value = 我是动态的!; divMain.appendChild(btn); 高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 innerText和innerHTMLl几乎所有DOM元素都有innerText、innerHTML属性(注意大小写),分别是元素标签内内容的文本表示形式和HTML源代码,这两个属性是可读可写的。/FF不支持innerText,在FF下用textContent属性。也可以用innerHTML设置普通文本。/编写兼
29、容的innerText,备注1.l示例:代码见备注1。(innerText与innerHTML区别。)l用innerHTML也可以替代createElement,属于简单、粗放型、后果自负的创建。l示例:function createlink() var divMain = document.getElementById(divMain);divMain.innerHTML = 如鹏网;的innerHTML和的innerHTML不一样。/建议,在使用之前要保证标签具有开始和结束标记,否则,会出现一些意想不到的后果。l(*)通过能力检测,写一个可以兼容FF与IE的使用innerText与text
30、Content的代码。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 练习l案例:点击按钮动态增加网站列表,分两列,第一列为网站的名字,第二列为带网站超链接的网站名。增加三行常见网站。浏览器兼容性问题,见备注。(先声明一个dict集合来存键值对。)l动态产生的元素,查看源代码是看不到的。通过DebugBarDom文档HTML可以看到。l练习:点击按钮增加一个网站的超链接(增加到body下面的某个div中。)l练习:无刷新评论。 猫猫:猫猫:沙发耶!沙发耶! 昵称:昵称: 高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 浏览器兼容性问题l浏览器兼容性的例子:i
31、e6,ie7对table.appendChild(tr)的支持和IE8不一样,用insertRow、insertCell来代替或者为表格添加tbody,然后向tbody中添加tr。FF不支持innerText。l所以动态加载网站列表的程序修改为:var tr = tableLinks.insertRow(-1);/FF必须加-1这个参数,表追加。如果不是负数,则表示在某个索引之前插入。var td1 = tr.insertCell(-1);td1.innerText = key;var td2 = tr.insertCell(-1);td2.innerHTML = + value + ;l或者
32、:(不建议),然后tableLinks. tBodies0.appendChild(tr);高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 innerHTML还是操作Dom节点l操作页面的元素的时候是用innerHTML的方式还是createElement()、appendChild()与removeChild()的方式?1.对于大量进行节点操作时,使用innerHTML的方式性能要好于频繁的Dom操作(有专门用C或C+写的html解析器。)。先将页面的HTML代码写好,然后调用一次innerHTML,而不要反复调用innerHTML.2.对于使用innerHTML=的方式来
33、删除节点,在某些情况下会存在内存问题。比如:div下面有很多其他元素,每个元素都绑定有事件处理程序。此时,innerHTML只是把当前元素从节点树上移除了,但是那些事件处理程序依然占用内存。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 代码是否需要放置到onload中l /如果js代码需要操作页面上的元素,则将该代码放到onload里面。l /因为当页面加载完毕之后页面上才会有相关的元素l /如果js代码中没有操作页面元素的语句,则可以将该代码直接写在标签中,l /例如:声明变量,相加求和等操作。 ll l l /写在这里的代码,由于已经是页面的底部,在执行该代码时,页面的
34、元素已经都加载完毕,所以可以不放到onload里面也可以操作页面上的元素。l /建议将操作页面元素的代码都放到onload里面。 l l高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 Js操作页面样式,其他l易错:修改元素的样式不是设置class属性,而是className属性。(class是JavaScript的一个保留字,属性不能用关键字、保留字所以就变成className了)案例:网页开关灯的效果。l修改元素的样式不能不能this.style=background-color:Red。l易错:单独修改样式的属性使用“style.属性名”。注意在css中属性名在JavaS
35、cript中操作的时候属性名可能不一样,主要集中在那些属性名中含有-的属性,因为JavaScript中-是不能做属性、类名的。所以CSS中背景颜色是background-color,而JavaScript则是style. backgroundColor;元素样式名是class,在JavaScript中是className属性;font-sizestyle.fontSize;margin-topstyle.marginTop /驼峰命名法。l单独修改控件的样式。技巧,没有文档的情况下的值属性名,随便给一个元素设定id,然后在js中就能id.style.出来能用的属性。l操作float样式的时候,
36、IE与其他浏览器不太一样。IE:obj.style.styleFloat=right;其他浏览器:obj.style.cssFloat=right;/通用代码见备注1.高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 案例练习l案例1:创建三个输入文本框,当光标离开文本框的时候如果文本框为空,则将文本框背景色设置为红色,如果不为空则为白色。提示:焦点进入控件的事件是onfocus,焦点离开控件的事件是onblur。l案例2:评分控件V1,用一个单行5列的Table做评分控件,监听td的click事件,点击一个td的时候,将这个td及之前的td背景变为红色,之后的td背景变为白色
37、。当鼠标悬浮在评分控件上的时候显示超链接形式的鼠标图标。【演示JQuery版】。l自定义简易评分控件代码:见备注1.高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 练习l练习1:超链接的单选效果。页还原为白色。参考:点击变“呜呜”。页面上若干个超链接,点击一个超链接s的时候被点击的超链接变为红色背景,其他超链接背景没有变。window.event.returnValue=false;。难点“this”l练习2:点击按钮,表格隔行变色:偶数行为黄色背景,奇数行为默认颜色。通过table的getElementsByTagName取得所有的tr,依次遍历,如果是偶数就。l练习3:放
38、若干文本框,获得焦点的文本框黄色黄色背景,其他控件背景颜色是白色白色思路1:监听所有input的onfocus事件将背景设置为黄色,监听所有input的onblur事件将背景设置为白色。思路2:只监听onfocus和练习1一样。l练习4:点击表格行,被点击的行高亮显示(背景是黄色),其他行白色背景。监听每个tr的onclick事件,将点击的背景设置为黄色,其他的设置为白色背景。/对于table、div、span这类型元素没有onfocus(获取焦点的事件(无法触发这些事件。)高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 控制层的显示l修改style.display,例子:切
39、换层的显示l function togglediv() l var div1 = document.getElementById(div1);l if (div1.style.display = ) l div1.style.display = none;/不显示l l else l div1.style.display = ;/显示l l /与元素对象.enabled=true或readonly=true等不一样,这里是样式,不是元素的直接属性,不能用true或false。l案例:按钮、checkbox,一般想到的都是onchange事件。(使用click事件,避免使用onchange事件。
40、)与超链接(3种),显示层。/动态创建层,移除。l案例:鼠标放到超链接上的时候显示一个图片或文字(放到div中。)高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 动态设置元素的位置、大小l通过dom读取元素的top、left、width、height等取到的值不是数字,而是“10px”这样的字符串;为这些属性设值的时候IE可以是80、90这样的数字,FF、Chrome必须是“80px”、“90%”等这样的字符串形式,为了兼容统一用字符串形式。left/top需要设置positionl易错:不要写成div1.style.width=80px,而是div1.style.width
41、=80px;l如果要修改元素的大小(宽度加1),则首先要取出元素的宽度,然后用parseInt将宽度转换为数字(parseInt可以将“20px”这样数字开头的包含其他内容的字符串解析为20,parseInt(22px,10),也就是解析尽可能多的部分);然后加上一个值,再加上px赋值回去。l案例:层的动态改变大小,将层内的内容隐藏掉(overflow:hidden)。setInterval();高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 IE中body的事件范围lIE中如果在body上添加onclick、onmousemove等事件响应,那么如果页面没有满,则 “bod
42、y 中最后一个元素以下(横向不限制)” 的部分是无法响应事件的,必须使用代码在document上监听那些事件,比如document.onmousemove = MovePicldocument.body.onmousedown=function()ldocument.onmousedown=function()l注意加文档定义与不加文档定义的也不一样。l如果为整个文档注册事件可以使用:document.onxxxx事件。高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 层的操作l元素的position 样式值:static(无定位,显示在默认位置)、absolute(绝对定位)
43、、fixed(相对于窗口的固定定位,位置不会随着浏览器的滚动而变化,IE6不支持)、relative(相对元素默认位置的定位)。如果要通过代码修改元素的坐标则一般使用absolute,然后修改元素的top(上边缘距离)、左边缘距离)两个样式值。left、top都是指的层的左上角的坐标left(l案例:跟着鼠标飞的图片。提示:鼠标移动的事件是onmousemove(一边移动事件一边触发,而不是移动开始或者移动完成才触发),通过window.event的clientX、clientY属性获得鼠标的位置。l案例:鼠标放到一个超链接的时候,在鼠标的位置显示一个黄色背景,带图片的悬浮提示,鼠标离开就消失。提示:鼠标进入控件的事件是onmouseover,离开的事件是onmouseout。l案例:点击按钮层动态变大。提示:英文字母连续单词不会在中间自动换行的陷阱overflow、word-break: break-all;(查手册。查手册。)高级软件人才实作培训专家高级软件人才实作培训专家北京传智播客教育 问题l易错:不要写成div1.style.width=80px,而是div1.style.width=80pxl修改元素的样式不能不能this.style=background-color:Red,哪怕可以的话也是把以前所有样
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外研版高中英语选择性必修第四册UNIT5 Period7课件
- 外研版高中英语选择性必修第四册UNIT3 Period2课件
- 贫困生生活补助申请书
- 中国铁塑复合桶项目投资可行性研究报告
- 校长第一责任人制度
- 知识管理与企业文化的融合之道
- 高中体育生申请书
- 电商平台的物流技术革新与智能配送
- 现代教育技术下的学生自主学习能力提升
- 四川省简阳市2022年七年级《地理》下册期中试卷与参考答案
- GB/T 44260-2024虚拟电厂资源配置与评估技术规范
- 肿瘤科医生年度工作总结报告
- 旅游服务质量评价体系
- 医院课件:《食源性疾病知识培训》
- 华为人才发展与运营管理
- 2024年广州金融控股集团有限公司招聘笔试冲刺题(带答案解析)
- 九三学社申请入社人员简历表
- 供电所安全第一课培训
- 郑州铁路职业技术学院单招职业技能测试参考试题库(含答案)
- 人教版五年级上册小数除法竖式计算练习200题及答案
- 新时代劳动教育教程(高职)大学生劳动教育全套教学课件
评论
0/150
提交评论