Ведение позиции прокрутки большой HTML-страницы при возврате клиента - программирование

Ведение позиции прокрутки большой HTML-страницы при возврате клиента

Я обслуживаю очень длинные html-страницы (короткие книги)

Когда клиент возвращается, слишком много хлопот, чтобы попытаться найти точное место, где его остановили из-за длинной страницы html.

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

4b9b3361

Ответ 1

Шаги просты, но решение этого вопроса зависит от вашей реализации приложения, вы можете:

  • Извлеките текущую позицию прокрутки, вы можете использовать:

    window.pageYOffset

  • Сохраните позицию, у нее две части, когда и где:

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

    • для "where", в зависимости от вашего приложения, вы можете захотеть сохранить его в куки файле локального хранилища на стороне сервера (если пользователю необходимо войти в систему, чтобы прочитать электронную книгу)...

  • Восстановить позицию, когда пользователь вернется, путем извлечения сохраненных данных и прокрутки до этой позиции с помощью

    window.scrollTo(0, position);

поэтому настоящая проблема заключается в том, когда и где хранить позицию, и это зависит от вашего приложения.

Ответ 2

Вы всегда можете использовать событие onbeforeunload для проверки, когда окно закрывается, и установить cookie с текущей позицией. Чем каждый раз, когда загружается страница, просто проверяйте, установлен ли этот файл cookie. Если это - используйте значение для перенаправления пользователя в сохраненную позицию.

Обновление

Вы должны понимать концепции, чтобы заставить их работать. Вы можете прочитать о файлах cookie и о том, как взаимодействовать с ними в javascript здесь. Ссылка содержит живой пример.

Onunload и onbeforeunload - это события javascript, которые вы можете использовать для обнаружения, когда ваша страница закрывается. Вы должны понимать, что это такое и как их использовать.

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

Я дал вам все кусочки головоломки, это вам, чтобы собрать их вместе.

Ответ 3

Я сделал небольшой плагин jquery, который вы можете включить и иметь эту функцию без файлов cookie и т.д. Включите перед тегом конец тега.

  <script type="text/javascript" src="/js/maintainscroll.jquery.min.js"></script>
</body>

https://github.com/evaldsurtans/maintainscroll.jquery.js