DOM级别划分
在不同的浏览器上,由于软件开发商之间的竞争,所以其实现的特点征集是不一样的,后来由于为了减轻开发者跨
浏览器的脚本程序的困难,由W3C组织协作制定了一些特征集的标准,目前W3C组织颁布了4个DOM级别,分别是DOM——0,
DOM——1,DOM——2和DOM——3级别。
可以看一下浏览器支持那种级别
DOM级别的分类
dom级别0:
DOM级别0不是W3C规范。而仅仅是对在Netscape Navigator3.0和Microsoft Internet Explorer3.0的等价功能性的
一种定义。
DOM发展过程的关键角色有:ArborText、IBM、Inso EPS、JavaSoft、Microsoft、Netscape、Novell、
the Object Management Group、SoftQuad、SunMicrosystems以及Texcel。
W3C的DOM级别建立于此功能性之上
dom级别1:
DOM级别1专注于HTML和XHL文档模型,它含有文档导航和处理功能
DOM级别1于1998年10月1日成为W3C推荐标准
第二版的工作草案在2000年9月29日
DOM级别2:
DOM级别2对DOM级别1添加了样式表对象模型,并定义了操作附于文档之上的样式信息的功能性
DOM级别2同时还定义了一个事件模型,并提供了对XML命名的空间支持
作为一项W3C推荐标准,DOM级别2规范发布于2000年11月13日
DOM级别3:
DOM Level3规定了内容模型(DTD和Schemas)和文档验证,同时规定了文档加载和保存、文档查看、文档格式化
和关键事件。DOM Level3建立于DOM Core Level2之上
事件总结
ui事件类型:
"DOMActive(元素已被用户操作)"、load、unload、"abort(用户下载内容没加载完成)"、error、select、
resize、scroll
原生js要给图片加事件时,要将图片放到unload中,在图片加载完毕之后在调用function
做项目时下载文件最多的是图片文件(在使用时要写上window.unload)
焦点事件:
bulr、DOMFocusln(获得焦点DOM3废弃了,增加了focusin)、DOMFocusOut(失去焦点DOM3废弃了,增加了
focusout)、focus、focusin
鼠标与滚轮事件
click、dbiclick、mousedown、mouseenter、mouseover、mouseup、mousewheel、鼠标滚轮事件
注:如果网站使用的是H5,
获取鼠标位置:
客户位置(clientX、cllenIY)
页面坐标位置(pageX、pageY)
屏幕坐标位置(screenX、screenY)
ios和安卓设备上对以前事件的响应
不支持dblclick事件
轻击可单击的元素会触发mousemove事件, 如果此操作导致内容变化,将不再有其他事件发生,如果没有变化,那么
会依次的发生mousedown. mouseup. dlick事件, 轻击不可单击的元素不会发生任何事件
mousemove事件可以发生mouseover和mouseout事件
两个手指放在屏幕上且页面随手指移动而滚动时触发mousewheel和scrol事件
html5事件
contextmenu事件: 上下文菜单事件,鼠标单击右键调出上下文菜单(冒泡事件)
实例: contexumenu htrml
实例:contextmeno事什的浏觉器有IE、Frefox. Safari、 Chrome和Opera11+
beforeunload事件: 在页面卸载之前组织这一操作
beforeunload.html
DOMcontentloaded事件: 页面加载完毕时加投(不包含图像、css. js文件是否加载完毕,只看结构点)
load是完全加仪完毕DOMContentLoaded会在load加权前加载
DOMcontent oaded .html
le9+、 Firetox、 chrome、 satan3.1+opera9
pageshow和pagehide事件:
往返缓存: Firefox和opera有一 个特性(back-froward cache, 或bfcache)往返级存,缓存里不仅保存着页面的
顺序还保存了DOM和JavaScript的状态:实际上整个页面都保存在缓存里,如果页面处于bfcache中,那么页面
不会触发load事件
pageshow:这个事件在事件显示时被触发,不管是否来自bfcache,通常在load之后触发
pagehide:页面隐藏的时候被触发
hashchange事件:
事件在当前URL的锚部分(以#为开始)发生改变时触发
实例:
window.onhaschange=finction(event){
alert("oldurl:"+event.oldURL+"\n newurl:"+newURL);
}
设备事件
orientationchange: ios新添加的事件,表示手机观看是横向还是纵向,当横纵改变的时候触发
window.orientation:ios新 添加属性,有3个值:
0:表示肖像模式90: 表示左旋转的横向模式,-90: 表示右转向的横向模式
MozOrientation:firefox新 添加的事件,和orientationchange作用 相同
它属于window对象,
event包含3个属性: X、 y、z,x=0,y=0,z=1表示直立状态。
只用加有加速度计设备才支持
支持的设备有macbook、lenovo、 thinkpad、 windows mobile和android支持
触摸和手势事件
touchstart:当手指触摸屏幕时触发;即使已经有-一个手指放在了屏幕上也会触发
touchmove: 当手指在屏幕上滑动时,连续触发。在这个事件发生期间,调用preventDefault ()可以阻止滚动
touched:当手指在屏 幕上移开时触发
touchcancel:当系统停止跟踪时触发
以上内容都有事件冒泡
每个touch对象都有以下几个属性
clientX:触摸目标在视口中的x坐标
clientY:触摸目标在视口中的Y坐标
identifier:标识触摸的唯--ID
pageX、pageY: 触摸目标在页面的位置
screenX、screenY: 触摸目标在屏幕中的位置
target:触摸的dom节点目标
htm|5事件:
手势事件
gesturestart:当一个手指已经按在屏幕上而另一个手指又触摸屏幕时触发
gesturechange:当触摸屏幕的任何一个手指的位置发生变化时触发
gestureend:当任何一个手指从屏幕上移开时触发
只有两个手指都触摸到事件的接受容器时才会触发手势事件。
每个手势事件的event对象都包含着标准的鼠标事件属性
bubbles、cancelable、 view、 clientX、 clientY、 screenX、screenY、detail、 altKey、 shiftKey、
ctrlIKey和metaKey
,rotation 属性表示手指变化引起的旋转角度,负值表示逆时针旋转,正值表示顺时针旋转( 该值从0开始)
scale属性表示两个手指间距的变化情况(例如向内收缩会缩短距离) ;这个值从1开始,并随距离拉大而增长,
随距高縮减而减小
gesture .html