目录
元素偏移量offset
offset 翻译过来就是偏移量, 我们使用 offset 系列相关属性可以动态的得到该元素的位置(偏移)、大小等。
1.获得元素距离带有定位父元素的位置 如果没有父亲或者父亲没有定位 则以 body 为准
2.获得元素自身的大小(宽度高度) 包含padding,border
3.注意: 返回的数值都不带单位

offset 系列常用属性:

    <script>
        // offset 系列
        var father = document.querySelector('.father');
        var son = document.querySelector('.son');
        // 1.可以得到元素的偏移 位置 返回的不带单位的数值  
        console.log(father.offsetTop);
        console.log(father.offsetLeft);
        // 它以带有定位的父亲为准  如果么有父亲或者父亲没有定位 则以 body 为准
        console.log(son.offsetLeft);
        var w = document.querySelector('.w');
        // 2.可以得到元素的大小 宽度和高度 是包含padding + border + width 
        console.log(w.offsetWidth);
        console.log(w.offsetHeight);
        // 3. 返回带有定位的父亲 否则返回的是body
        console.log(son.offsetParent); // 返回带有定位的父亲 否则返回的是body
        console.log(son.parentNode); // 返回父亲 是最近一级的父亲 亲爸爸 不管父亲有没有定位
    </script>offset 与 style 区别
offset
-  offset 可以得到任意样式表中的样式值 
-  offset 系列获得的数值是没有单位的 
-  offsetWidth 包含padding+border+width 
-  offsetWidth 等属性是只读属性,只能获取不能赋值 
-  所以,我们想要获取元素大小位置,用offset更合适 
style
-  style 只能得到行内样式表中的样式值 
-  style.width 获得的是带有单位的字符串 
-  style.width 获得不包含padding和border 的值 
-  style.width 是可读写属性,可以获取也可以赋值 
-  所以,我们想要给元素更改值,则需要用style改变 
元素可视区client
client 翻译过来就是客户端,我们使用 client 系列的相关属性来获取元素可视区的相关信息。通过 client 系列 的相关属性可以动态的得到该元素的边框大小、元素大小等


    <script>
        // client 宽度 和我们offsetWidth 最大的区别就是 不包含边框
        var div = document.querySelector('div');
        console.log(div.clientWidth);
    </script>元素滚动scroll
scroll 翻译过来就是滚动的,我们使用 scroll 系列的相关属性可以动态的得到该元素的大小、滚动距离等。


页面被卷去的头部
如果浏览器的高(或宽)度不足以显示整个页面时,会自动出现滚动条。当滚动条向下滚动时,页面上面被隐藏掉的高度,我们就称为页面被卷去的头部。滚动条在滚动时会触发 onscroll事件。
需要注意的是,页面被卷去的头部,有兼容性问题,因此获取被卷去的头部通常有如下几种写法:
1. 声明了 DTD,使用 document.documentElement.scrollTop(了解)
 2. 未声明 DTD,使用  document.body.scrollTop(了解)
 3. 新方法 window.pageYOffset和 window.pageXOffset,IE9 开始支持
//解决兼容性
function getScroll() {
 return {
 left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft||0,
 top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
 };
} 
使用的时候 getScroll().left三大系列总结

他们主要用法:
1. offset系列 经常用于获得元素位置 offsetLeft offsetTop
2. client 经常用于获取元素大小 clientWidth clientHeight
3. scroll 经常用于获取滚动距离 scrollTop scrollLeft
4. 注意页面滚动的距离通过 window.pageXOffset 获得










