使用jQuery滚动后获取元素的新x/y位置

Pra*_*hav 12 jquery scroll position

可以说我有一个<a>标签如下:

<body>
    <div class="wrapper">
        <a href="#" class="a1">Click Me</a>
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

我的CSS是:

body{ padding:10px;}
.wrapper { height:1000px; width:500px;}
Run Code Online (Sandbox Code Playgroud)

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

var offset = $(".a1").offset();
var top = offset.top;
var left = offset.left;
Run Code Online (Sandbox Code Playgroud)

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

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

请帮忙.

tec*_*bar 24

滚动时链接元素在文档中的位置不会改变.要获得窗口左上角的元素位置,可以将其偏移()并减去窗口的scrollTop格式:

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

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