Получить текущую позицию прокрутки и передать ее как переменную со ссылкой?
Буду честным, я вышел из своей глубины. Я создал систему разбиения на страницы, где вы нажимаете ссылку, которая перезагружает страницу, и определенное количество элементов списка отображается в неупорядоченном списке. Когда вы нажмете его снова, он перезагрузит страницу и отобразит больше элементов. Подумайте, как Twitter показывает твиты в вашем канале.
Проблема заключается в том, когда она перезагружает страницу, на которой она находится наверху. Я бы хотел, чтобы он переместился в ту же позицию на предыдущей странице.
У меня уже есть селектор для настройки ссылки, я просто не знаю, как получить текущую позицию прокрутки, а затем передать ее на новую страницу, для которой она может перейти.
Здесь мой код:
jQuery(document).ready(function(){
$("a[rel=more]").live("click", function(){
//script...
});
});
Куда я иду отсюда?
Ответы
Ответ 1
-
Перезагрузите элементы с помощью AJAX вместо перезагрузки всей страницы.
-
Получить и установить положение прокрутки с помощью window.pageYOffset
и window.scrollTo(0, y)
.
Я бы сохранил позицию в хэше URL-адреса:
// after loading the document, scroll to the right position
// maybe location.hash has to be converted to a number first
$(document).ready(function() {
window.scrollTo(0, location.hash);
});
// I'm not quite sure if reload() does preserve the hash tag.
location.hash = window.pageYOffset;
location.reload();
Ответ 2
Как сказано в gs, добавьте элементы через вызов ajax вместо перезагрузки страницы.
Если вы не хотите использовать плагин jQuery.ScrollTo. Что поддерживает все, что связано с прокруткой, о которой вы когда-либо могли мечтать о
Ответ 3
Я думаю, что вам нужно просто передать якорь HTML в конце вашей ссылки. Браузер автоматически прокрутит элемент рядом с совпадающим якорем. Пример:
<a href="page2.html#myanchor">Next page</a>
В какой-то момент в середине страницы2:
<a name="myanchor">My item N</a>
Ответ 4
в соответствии с ссылкой @Shawn Grigson, страницаYOffset не поддерживается одинаково во всех браузерах.
решение jQuery (надеюсь, действительно совместимо с кросс-браузером, хотя я еще не тестировал его) для получения и установки элемента вертикальной прокрутки scrollTop().