JQuery. Как сохранить позицию скролла после закрытия браузера?

Как я понял, делается это через cookie. Принцип вроде бы понял, но, всё же, хотелось бы увидеть, как выглядит код..
  • Вопрос задан
  • 2666 просмотров
Решения вопроса 1
printf
@printf
Ем детей.
Лучше не в печенье, а в localStorage какой-нибудь класть. Печенье отправляется на сервер в каждом запросе, а серверу-то позиция скролла точно нафиг не нужна.

Положил работающий пример вот тут: jsfiddle.net/mvasilkov/2mfewoy0

Код вот такой:
var $window = $(window)

/* Restore scroll position */
window.scroll(0, localStorage.getItem('scrollPosition')|0)

/* Save scroll position */
$window.scroll(function () {
    localStorage.setItem('scrollPosition', $window.scrollTop())
})


Два довольно очевидных замечания:
  1. Можно запросто обойтись в данном случае без jQuery, это не усложнит код
  2. Если нужна совместимость со старыми браузерами, можно взять любую библиотеку для эмуляции localStorage, например, вот эту: https://github.com/marcuswestin/store.js/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
blackrid
@blackrid
Стараюсь узнать всё понемногу
localStorage - очевидный вариант. Я его использовал даже в мобильной игре на HTML5/Cordova/iOS/Android для сохранения очков и настроек - все отлично работает.

Посоветую на всякий случай использовать при сохранении данных в localStorage использовать уникальный префикс для объекта, например:

$( window ).scroll( function() {
  localStorage.setItem( 'www_mysite_com_scroll_position', $( window ).scrollTop() );
} );
Ответ написан
@Dzham

var pos;
$(window).on("scroll", function() {
pos = $(window).scrollTop();
});
- позиция
https://github.com/carhartl/jquery-cookie - удобная работа с куками
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы