jQuery - переместитесь в определенное местоположение элемента

У меня есть система разбиения на страницы как это:

[content]
1 2 3 Next >

при нажатии на 1/2/3/next [содержание], элемент получает замененную канавку ajax.

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

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

7
задан Brock Adams 9 July 2010 в 03:32
поделиться

3 ответа

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

var p = $(".links").position();
$(window).scrollTop(p.top);
10
ответ дан 7 December 2019 в 01:15
поделиться

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

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

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

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

Затем подсчитайте, чтобы узнать, насколько он перемещен.

var difference = after - before

И обновите местоположение прокрутки окна соответствующим образом

$(window).scrollTop( $(window).scrollTop() + difference )
0
ответ дан 7 December 2019 в 01:15
поделиться

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

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

[content]

<a href="#contentTop" onclick="nextPage(); return true;">Next</a>
0
ответ дан 7 December 2019 в 01:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: