元素偏移量offset系列

offset概述

offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态得到该元素的位置( 偏移)大小

注意:返回的数值都不带单位

  • 获得元素自身的大小 (宽度高度)
  • 获得自身元素相对带有定位的父元素的偏移

offset系列常用属性

offset系列属性 作用
element.offsetTop 返回元素相对带有定位父元素的上方偏移
element.offsetLeft 返回元素相对带有定位父元素的左方偏移
element.offsetWidth 返回自身包括padding、边框、内容区的宽度、返回的数值不带单位
element.offsetHeight 返回自身包括padding、边框、内容区的高度、返回的数值不带单位
element.offsetParent 返回作用在该元素带有定位的父级元素。如果一直向上没找到父级是带定位的,则返回body

offset与style区别

offset

  1. offset系列获得的数值都不带单位
  2. offsetWidth包含padding+border+width
  3. offsetWidth为只读属性,只能获取不可赋值
  4. offset可以得到任意样式表中的样式值
  5. 所以获取元素自身的大小位置,使用offset更合适

style

  1. style只能得到行内样式表中的样式值
  2. style.width获取的数值是带单位的字符串
  3. style.width获得不包含padding和border的值
  4. style.width是可读写属性,既可获取也可赋值
  5. 所以,想要给元素更改值,则需要使用stylet改变

元素可视区client系列

client概述

client翻译过来就是客户端,通过client系列的相关属性可以动态的得到该元素的边框大小元素大小(不包括边框)等

图片4

client系列属性 作用
element.clientTop 返回元素上边框的大小
element.clientLeft 返回元素左边的边框大小
element.clientWidth 返回自身包括padding、内容区的宽度,不包括边框,返回的数值不带单位
element.clientHeight 返回自身包括padding、内容区的高度,不包括边框,返回的数值不带单位

元素滚动scroll系列

scroll翻译过来就是滚动的,通过scroll系列相关属性可以动态得到该元素的大小,滚动距离等

  • 当出现滚动条时,向下滚动页面时,上面被隐藏掉的高度,被称为页面被卷去的部分,此时滚动条在滚动时会触发 scroll 事件
  • 注意:元素被卷的头部使用element.scrollTop,如果是页面被卷去的头部则是window.pageYOffset

图片6

scroll系列属性 作用
element.scrollTop 返回元素被卷去的上侧距离,返回数值不带单位
element.scrollLeft 返回元素被卷去的左侧距离,返回数值不带单位
element.scrollWidth 返回元素自身实际宽度(包括超出盒子的宽度),不含边框,返回的数值不带单位
element.scrollHeight 返回元素自身实际高度(包括超出盒子的高度),不含边框,返回的数值不带单位

页面被卷 page

注意:元素被卷的头部使用element.scrollTop,如果是页面被卷去的头部则是window.pageYOffset

page属性 作用
window.pageYOffset 获取的是页面被卷的头部,与scrllTop是元素被卷不同
window.pageXOffset 获取的是页面被卷的左侧,与scrllLeft是元素被卷不同

三大系列总结

三大系列的主要用法

  • offset系列经常用于,获取元素的位置 offsetTopoffsetLeft
  • client系列经常用于,获取元素的大小 clientWidthclientHeight
  • scroll系列经常用于,获取元素的滚动距离 scrollTopscrollLeft
三大系列对比 作用
element.offsetWidth 返回自身内容宽度,包括padding、包括边框。返回的数值不带单位
element.clientWidth 返回自身内容宽度,包括padding、不包括边框。返回的数值不带单位
element.scrollWidth 返回自身内容包括超出元素的内容大小、包括padding、不包括边框、返回的数值不带单位。

image-20210623082555732

立即执行函数

  • 立即执行函数(也称自调用函数)
  • 主要作用:创建独立的作用域,避免变量名相互冲突。
  1. (function(){}) ()
    复制代码
  2. (function(){} ())
    复制代码

原生js 之 (DOM操作) >-<

「点赞、收藏和评论」

❤️关注+点赞+收藏+评论+转发❤️,鼓励笔者创作更好的文章,谢谢?大家。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享