所以我试图通过javascript / jquery执行一些计算,以使我的webapp中的元素响应。我理解通过使用object.offset().top
,我能够获得内容顶部和对象顶部之间的像素数。但是,我的部分设计是某些元素贴在屏幕顶部,而其余元素滚动过去,然后object.offset().top
与原来相同的方式没用。
我想知道的是:有没有一种方法可以确定我的对象和用户屏幕顶部之间的距离(而不是对象和我内容的顶部之间)?我正在使用最新版本的Chrome。
干杯
答案 0 :(得分:1)
是否有一种方法可用于确定我的对象与用户屏幕顶部之间的距离
是的,有 - getBoundingClientRect:
“返回的值是一个TextRectangle对象,其中包含描述边框的只读
left
,top
,right
和bottom
属性像素。 top和left相对于视口的左上角。“
我在这里做了一个(超过)原始示例,http://jsfiddle.net/7ceL8p3s/ - 将红色框滚动到视图中,然后单击它 - 每次单击时它都会将TextRectangle
对象记录到控制台,并且您会看到top
和left
值相对于视口。 (jsfiddle结果框的视口是 - 转到http://jsfiddle.net/7ceL8p3s/show/以在完整窗口中查看它。)
如果您滚动它以使框在顶部视口边框上部分偏离视图,以便只有其中较低部分可见,您也将获得负top
值。 (如果您的布局中元素可能会向左滚动到视图之外,left
也会发生相同的情况。)