使用javascript,如何获取元素的位置
就像标题所说,如何获取元素相对于其在网页中的位置的 x、y 位置以及它们的定位方案(如绝对、相对等)。
like the title says, how to get the element's x, y positions with respect to their location in the web page and their positioning schemes like absolute, relative etc.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在现代浏览器中, getBoundingClientRect 和 getClientRects 将为您提供描述元素的矩形对象。请参阅 https://developer.mozilla.org/en/DOM/element.getBoundingClientRect 和 https://developer.mozilla.org/en/DOM/element.getClientRects
如果您必须使用 IE8,那么您必须在不同的浏览器中执行不同的操作才能获得正确的答案(例如对象检测 getBoundingClientRect 并依靠其他方法(如果不存在))。
jQuery
offset()
计算和 QuirksmodefindPos
将在任何进行子像素定位的浏览器(例如 Firefox 或 IE9)中给出错误的答案,因为它们会将答案舍入为整数像素。根据您在做什么,这可能会也可能不会。In a modern browser, getBoundingClientRect and getClientRects will give you rect objects describing your element. See https://developer.mozilla.org/en/DOM/element.getBoundingClientRect and https://developer.mozilla.org/en/DOM/element.getClientRects
If you have to work with IE8, then you'll have to do different things in different browsers to get correct answers (e.g. object-detect getBoundingClientRect and fall back on some other method if it's not present).
The jQuery
offset()
calculation and the QuirksmodefindPos
will give incorrect answers in any browser that does subpixel positioning (e.g. Firefox or IE9), because they will round the answer to an integer number of pixels. Depending on what you're doing, that may or may not be ok.使用 jQuery:
如果没有 jQuery,请使用 Quirksmode 的
findPos
函数:在没有库的情况下获取计算的 CSS
position
值是 又一罐蠕虫。它归结为:element.currentStyle< /code>
(IE)
getCompulatedStyle(element)
(真实浏览器)With jQuery:
Without jQuery, use Quirksmode's
findPos
function:Getting the computed CSS
position
value without a library is another can of worms. It boils down to:element.currentStyle
(IE)getComputedStyle(element)
(real browsers)看看这个
JS:
HTML:
回电:
我希望它对你有帮助
Check out this
JS:
HTML:
RETURN CALL:
I hope its help to you