获取元素相对于body的位置
来源:互联网 发布:mysql 1267 编辑:程序博客网 时间:2024/05/21 16:23
很多时候,我们需要实现页面内的跳转,除了使用锚点外,还可能会用doby.scrollTop = el.offsetTop.
但有时候,这种方式用起来却有些问题,滚动条滚动的位置往往并不是预想中的目标元素的位置,这是为什么呢?
其实是offsetTop的问题,offsetTop的取值是有一个相对元素的,这个相对元素显然不一定是body,所以当使用doby.scrollTop = el.offsetTop时,自然不会跳到预想中的位置。那么,要怎么做呢?请看下面的函数:
// 元素相对于body的offsetTopexport function getOffsetTopByBody (el) { let offsetTop = 0 while (el && el.tagName !== 'BODY') { offsetTop += el.offsetTop el = el.offsetParent } return offsetTop}
其实每个元素都是有一个offsetParent的属性,这个属性就记录了该元素取offsetTop值的相对元素,然后再求相对元素的相对元素,如此层层相加知道body,即可获取到实际相对于body的offsetTop了
offsetWidth一般使用比较少,但是原理也是这样。
阅读全文
0 0
- 获取元素相对于body的位置
- 获取子元素相对于父元素的位置
- javascriptBom中元素的绝对定位以及相对于body的x轴位置和y轴位置定位
- 获取元素在body中的绝对位置
- javascript获取鼠标相对于window的位置
- 获取控件相对于手机屏幕的位置
- 固定子元素相对于父元素的位置
- 获取元素相对于文档的偏移量以及元素相对于父元素的偏移量
- 获得元素相对于当前窗口的上下左右位置
- js计算鼠标当前相对于某个元素的位置
- js获取元素相对于父级元素的高度
- 获取元素的位置
- WPF中获取鼠标相对于屏幕的位置
- WPF中获取鼠标相对于屏幕的位置
- 获取一个控件相对于父窗口的坐标位置
- MFC下获取控件相对于子窗口的矩形位置
- js实现鼠标点击获取相对于整个页面的位置
- 如何获取元素的相对于屏幕的距离?
- springboot学习-全局异常处理
- Linux netstat命令详解
- 快速的取整方法(~~)
- ZXing优化
- KMP
- 获取元素相对于body的位置
- 实用工具集合
- Jquery.Datatables td宽度太长的情况下,自动换行
- cassandra中bigint
- 手写 parseInt
- 排序——选择排序
- ios-图片类型的上下文
- Namenode 联盟 联邦环境的搭建
- 程序员,感觉技术停滞了怎么办?