Div相对于视口顶部的位置

我想知道如何在Javascript中获得从div到窗口顶部的像素数(或者通常的测量值)。我不是在寻找相对于文档的偏移量y,只是在浏览器显示的顶部。我在这里尝试了“已回答”的解决方案:是否可以在浏览器视口中获取div的位置?不在文档中。在窗口中,但至少在Safari中,我遇到了一个问题,它返回相同的数字,而不管div真正在哪里

谢谢你的帮助

现有的答案现已过时。getBoundingClientRect()方法已经存在了很长一段时间,并且完全满足了这个问题的要求。此外,所有浏览器都支持它

从该MDN页面:

返回的值是一个TextRectangle对象,它包含描述边框框的只读左、上、右和下属性,以像素为单位,左上角相对于视口的左上角

你这样使用它:

var viewportOffset=el.getBoundingClientRect();
//这些是相对于视口的
var top=viewportOffset.top;
var left=viewportOffset.left;

发表评论