DOM级别划分、事件总结

294 阅读5分钟
DOM级别划分
    在不同的浏览器上,由于软件开发商之间的竞争,所以其实现的特点征集是不一样的,后来由于为了减轻开发者跨
浏览器的脚本程序的困难,由W3C组织协作制定了一些特征集的标准,目前W3C组织颁布了4DOM级别,分别是DOM——0DOM——1DOM——2DOM——3级别。

可以看一下浏览器支持那种级别

DOM级别的分类

dom级别0DOM级别0不是W3C规范。而仅仅是对在Netscape Navigator3.0Microsoft Internet Explorer3.0的等价功能性的
一种定义。
    DOM发展过程的关键角色有:ArborTextIBMInso EPSJavaSoftMicrosoftNetscapeNovell、
the Object Management GroupSoftQuadSunMicrosystems以及TexcelW3CDOM级别建立于此功能性之上

dom级别1DOM级别1专注于HTMLXHL文档模型,它含有文档导航和处理功能
    DOM级别11998101日成为W3C推荐标准
    第二版的工作草案在2000929DOM级别2DOM级别2DOM级别1添加了样式表对象模型,并定义了操作附于文档之上的样式信息的功能性
    DOM级别2同时还定义了一个事件模型,并提供了对XML命名的空间支持
    作为一项W3C推荐标准,DOM级别2规范发布于20001113DOM级别3DOM Level3规定了内容模型(DTDSchemas)和文档验证,同时规定了文档加载和保存、文档查看、文档格式化
和关键事件。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事什的浏觉器有IEFrefox. SafariChromeOpera11+
    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)往返级存,缓存里不仅保存着页面的
   顺序还保存了DOMJavaScript的状态:实际上整个页面都保存在缓存里,如果页面处于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