12

假设我有一个<a>标签如下:

<body>
    <div class="wrapper">
        <a href="#" class="a1">Click Me</a>
    </div>
</body>

我的CSS是:

body{ padding:10px;}
.wrapper { height:1000px; width:500px;}

目前我正在使用.offset() Jquery 来获取<a>标签的 X/Y 位置。

var offset = $(".a1").offset();
var top = offset.top;
var left = offset.left;

现在,当我滚动页面并检查<a>标签的 x,y 坐标时,它们保持不变,即页面滚动无效。
我想<a>在滚动与屏幕相关的页面后获取标签的新 X、Y 位置。
如果此<a>标签在向下滚动后被隐藏,我希望它的位置为负值。

检查这个小提琴:http: //jsfiddle.net/xQh5J/9/

请帮忙。

4

1 回答 1

26

滚动时,链接元素在文档中的位置不会改变。要获取窗口左上角元素的位置,您可以使用它的offset()并减去窗口的 scrollTop 形式您得到的:

var offset = $(".a1").offset();
var w = $(window);
alert("(x,y): ("+(offset.left-w.scrollLeft())+","+(offset.top-w.scrollTop())+")");

演示:http: //jsfiddle.net/xQh5J/10/

于 2013-05-28T14:35:43.877 回答