jQuery - переместить в определенное местоположение элемента - PullRequest
7 голосов
/ 06 июля 2010

У меня есть такая система нумерации страниц:

[content]
1 2 3 Next >

, когда вы нажимаете 1/2/3 / рядом, элемент [content] заменяется через ajax.

проблема в том,что фокус экрана перемещается вверх, если новая высота [содержимого] больше, чем предыдущая.

можно ли заставить экран оставаться сфокусированным там, где находятся ссылки на страницы?

Ответы [ 3 ]

10 голосов
/ 06 июля 2010

Вам нужно найти положение элемента и прокручивать его до каждого изменения высоты. Что-то вроде:

var p = $(".links").position();
$(window).scrollTop(p.top);
0 голосов
/ 06 июля 2010

Вероятно, вы можете исправить это без jQuery или javascript ... Просто создайте именованный якорь, где вы хотите, чтобы верхняя часть страницы находилась после того, как пользователь нажимает навигационные ссылки, вставьте имя якоря в идентификатор фрагмента переходите по ссылкам и не отменяйте событие, поэтому страница переходит на якорь.

<a name="contentTop"></a>

[content]

<a href="#contentTop" onclick="nextPage(); return true;">Next</a>
0 голосов
/ 06 июля 2010

Чтобы страница отображалась прозрачно и оставалась на том же месте, вам необходимо выяснить, где находятся ссылки, прежде чем загружать новый контент.

var before = $(".links").offset().top;

Затем, после загрузки нового контента, получите новую высоту ссылки.

var after = $(".links").offset().top;

Затем посчитай, как сильно он сдвинулся.

var difference = after - before

И соответственно обновите местоположение прокрутки вашего окна

$(window).scrollTop( $(window).scrollTop() + difference )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...