Подтвердить что ты не робот

Получить новые позиции x/y элемента после прокрутки с помощью jQuery

Скажем, у меня есть тег <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, чтобы получить позиции X/Y тега <a>.

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

Теперь, когда я просматриваю страницу и проверяю тэги x, y координаты <a>, они остаются теми же, то есть неэффективны для прокрутки страницы.
Я хочу получить новые позиции X, Y тега <a> после прокрутки страницы, связанной с экраном.
Если этот тег <a> скрывается после прокрутки вниз, я хочу, чтобы его позиция была отрицательной.

Проверьте эту скрипту: http://jsfiddle.net/xQh5J/9/

Пожалуйста, помогите.

4b9b3361

Ответ 1

Позиция элемента ссылки w.r.t. при прокрутке документ не изменяется. Чтобы получить положение элемента w.r.t. в верхнем левом окне вы можете взять его 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/