使用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/