复习笔记之API(13) JS盒模型系列13个属性
2020-04-21 本文已影响0人
晚月川
元素偏移量offset
系列
offset
偏移量,我们使用offset
系列相关属性可以动态得到该元素的位置(偏移)、大小等。
- 获得元素距离带有定位父元素的位置
- 获得元素自身的大小(宽度高度)
- 返回的数字都是不带单位的
offset
常用属性
offset 系列属性 |
作用 |
---|---|
element.offsetParent |
返回该元素带有定位的父级元素,如果父级元素都没有定位则返回body
|
element.offsetTop |
返回元素相对于带有定位的父元素上方的偏移 |
element.offsetLeft |
返回元素相对于带有定位的父元素左边框的偏移 |
element.offsetWidth |
返回元素自身包括padding 、边框、内容区的宽度,返回的数值不带单位 |
element.offsetHeight |
返回元素自身包括padding 、边框、内容区的高度,返回的数值不带单位 |
offsetParent
获取带有定位的父级元素,如果父级元素都没有定位,则返回body
;parentNode
返回最近一级的父级元素
offset
和style
的区别
offset |
style |
---|---|
offset 可以得到任意样式表中的样式值 |
style 只能得到行内样式表中的样式值 |
offset 系列获取的数值是没有单位的 |
style.width 获得的是带有单位的字符串 |
offsetWidth 包含padding+border+width
|
style.width 获取的属性不包含padding 和border 值 |
offsetWidth 等属性只读属性,只能获取不能赋值 |
style.width 是可读写属性,可以获取也可以赋值 |
想要获取元素大小位置,用offset 更合适 |
想要更改元素属性值,则需要用style 改变 |
元素可视区client
系列
client
客户端,我们使用client
系列的相关属性来获取元素可视区的相关信息,通过client
系列的相关属性就可以动态的得到该元素的边框大小,元素的大小等
client 系列属性 |
作用 |
---|---|
element.clientTop |
返回元素上边框的大小 |
element.clientLeft |
返回元素左边框的大小 |
element.clientWidth |
返回自身包括padding 和内容区宽度,不含边框,返回的数值不带单位 |
element.clientHeight |
返回自身包括padding 和内容区高度,不含边框,返回的数值不带单位 |
元素滚动条scroll
系列
scroll
滚动的,我们使用scroll
系列的相关属性可以动态的得到该元素的大小和滚动距离等(返回的数值不带单位)
scroll 系列属性 |
作用 |
---|---|
element.scrollTop |
返回被卷上去的上侧距离 |
element.scrollLeft |
返回被卷上去的左侧距离 |
element.scrollWidth |
返回自身实际的宽度,不含边框 |
element.scrollHeight |
返回自身实际的高度,不含边框 |
scroll
事件
如果浏览器的高(或宽)度不足以显示整个页面时,会自动出现滚动条,当滚动条向下滚动时,页面上面被隐藏掉的高度,我们就称为页面被卷去的头部,滚动条在滚动时会触发
scroll
事件
<div>这里面内容很多,我就不写了(是真的很多,至少多到出现滚动条)</div>
<!-- scroll滚动事件:当我们滚动条发生变化时触发的事件 -->
<script>
let div = document.querySelector('div');
div.addEventListener('scroll', function() {
console.log(div.scrollTop);
})
</script>
三大系列总结
三大系列大小对比 | 作用 | 返回数值 |
---|---|---|
element.offsetWidth |
返回自身包括padding 、边框、内容区域的宽度, |
返回数值不带单位 |
element.clientWidth |
返回自身包括padding 、内容区域的宽度,不含边框 |
返回数值不带单位 |
element.scrollWidth |
返回自身实际宽度,不含边框 | 返回数值不带单位 |
offset
系列常用于获取元素的位置offsetLeft
、offsetTop
client
系列经常用于获取元素大小clientWidth
、clientHeight
scroll
系列常用于获取滚动距离scrollTop
、scrollLeft
- 页面滚动距离通过
window.pageYOffset
获得,如果被卷去的是左侧window.pageXOffset