DOM

作者: cooore | 来源:发表于2016-07-08 19:38 被阅读0次
    • FF、Opera 和 IE 浏览器认为在客户端浏览器展示的页面的内容对应于整个 HTML,所以使用 document.documentElement
      来代表,相应的滚动距离则通过 document.documentElement.scrollLeft
      和 document.documentElement.scrollTop来获取。
    • 而 Safari 和 Chrome 浏览器则认为页面开始于 body 部分,从而相应的滚动距离用 document.body.scrollLeft 和 document.body.scrollTop
      来获取。另外需要注意的是,FF 和 IE 的 quirks mode(兼容模式)下是用 document.body来获取的。
      documentElement 对应的是 html 标签,而 body 对应的是 body 标签。
    var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
    var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
    
    • offsetTop, offsetLeft 都是相对于最近一个有定位的父元素,如果都没有那么就是相对于 body 的偏移位置。
    • offsetParent是寻找最近一个有定位的父级元素,如果没有,那么找到 body 元素。
    • 如果有定位的父级元素不是 body,是 A 元素,那么再寻找 A 元素的最近的有定位的父级元素,如果没有,就是相对于 body 的定位,这时,所求偏移量就是 A 的偏移量加所求元素相对于 A 的偏移量。如果 A 还有已经定位的父级元素,就继续去推,直到找到 body 为止。

    E8+ 支持 addEventListener()。IE8 以下的版本使用 attachEvent()

    • attachEvent()
      不支持事件捕获。
    • attachEvent()
      第一个参数事件处理程序属性名使用前缀 on。
    • attachEvent()
      允许相同的事件处理程序函数注册多次。

    相关文章

      网友评论

          本文标题:DOM

          本文链接:https://www.haomeiwen.com/subject/ssyljttx.html