offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。
获得元素距离带有定位父元素的位置获得元素自身的大小(宽度高度)注意:返回的数值都不带单位offset系列常用属性:
element.offsetParent:返回作为该元素带有定位的父级元素,如果父级都没有定位则返回bodyelement.offsetTop:返回元素相对带有定位父元素上方的偏移element.offsetLeft:返回元素相对带有定位父元素左边框的偏移(没有Right和Buttom)element.offsetWidth:返回自身包括padding、边框、内容区的宽度,返回数值不带单位element.offsetHeight:返回自身包括padding、边框、内容区的高度,返回数值不带单位offset和style的区别:
offset可以得到任意样式表中的样式值 style只能得到行内样式表中的样式值offset系列获得的数值是没有单位的 style.width获得的是带有单位的字符串offsetWidth包含padding+border+width style.width获得的是不包含padding和border的值offsetWidth等属性是只读属性,只能获取不能赋值 style.width是可读写属性,可以获取也可以赋值因此,我们想要获取元素大小位置,用offset更合适,想要给元素更改值,则需要用style改变
client翻译过来就是客户端,我们使用client系列的相关属性来获取元素可视区的相关信息。通过client的相关属性可以动态的得到该元素的边框大小、元素大小等。
client系列属性:
element.clientTop:返回元素上边框的大小element.clientLeft:返回元素左边框的大小element.clienttWidth:返回自身包括padding、内容区的宽度,不含边框,返回数值不带单位element.clientHeight:返回自身包括padding、内容区的高度,不含边框,返回数值不带单位clientHeight + 滚动条 + 边框 = offsetHeight
scroll翻译过来就是滚动的,我们使用scroll系列的相关属性可以动态的得到该元素的大小、滚动距离等。
scroll系列属性:
element.scrollTop:返回被卷去的上侧距离,返回数值不带单位element.scrollLeft:返回被卷去的左侧距离,返回数值不带单位element.scrollWidth:返回自身实际的宽度,不含边框,返回数值不带单位element.scrollHeight:返回自身实际的高度,不含边框,返回数值不带单位应用场景:
判定元素是否滚动到底element.scrollHeight - element.scrollTop === element.clientHeight
返回顶部element.scrollTop = 0
需要注意的是,页面被卷去的头部,有兼容性问题,因此被卷去的头部通常有如下几种写法:
声明了DTD,使用document.documentElement.scrollTop未声明DTD,使用document.body.scollTop新方法window.pageYoffset和window.pageXoffset(IE9开始支持)