Получить новые позиции 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/
Пожалуйста, помогите.
Ответы
Ответ 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/