javascript - jquery如何找到元素的偏移量?

标签 javascript jquery offset

使用jquery offset函数,我们可以找到元素相对于窗口的坐标。jquery是如何做到这一点的?

最佳答案

Jquery 通常尝试以跨浏览器的方式进行操作,但它可能有助于理解一些底层选项和原理。

Element.getBoundingClientRect()返回元素的大小及其相对于浏览器视口(viewport)的位置。

在相当现代的浏览器中,可以使用window.innerHeight来询问视口(viewport)和窗口尺寸。以及相关的(innerWidth、outerHeight、outerWidth)属性。

fixed position的坐标相对于视口(viewport)的元素可以通过解释它们的 computed style 来获得定位元素相对于哪个视口(viewport)边框的值。

后备选项是对 HTMLelement 的 offsetLeft 求和和 offsetTop 值与其 offsetParent 中所有 HTML 对象的值链来计算渲染文档中元素的累积偏移量,然后调整文档当前 X 和 Y 滚动位置的计算值。 MDN 关于 window.scrollX 的文章给出了如何以跨浏览器方式计算滚动位置的示例。

这是一组文档链接,用于说明 jQuery 代码或任何其他库或纯 JavaScript 代码如何计算窗口位置。我并没有尝试调查 jQuery 可能悄悄为您解决的每个浏览器错误。

关于javascript - jquery如何找到元素的偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37535409/

相关文章:

javascript - 如何在javascript中隐藏游戏回合之间的元素?

javascript - 如何在javascript函数中添加和删除css类

javascript - Velocity.js 与 jQuery 使用预定义函数

limit - SPARQL 中的括号是什么?为什么链接的电影数据库限制为 2500 条记录?

javascript - 当文件名通过 props 传递时,React 组件无法动态 require() 图像文件

javascript - 弹出onload骗取镜像域

javascript - 如何使用 jquery 将所有正文内容包装在一个 div 中?

javascript - 添加带有 onclick 参数的元素

python - 将字符偏移量转换为字节偏移量(在 Python 中)

java - 为什么 java.util.Date 将 Year 表示为 "year-1900"?