Intereting Posts
исключение: исключение из памяти в процессе Ajax как создать безопасную систему регистрации php, позволяющую использовать функцию «сохранить меня в системе»? Получение сломанных изображений из хранилища blob на сайтах Azure PHP-интерком не работает после обновления композитора Включить PHP-файл в файл HTML Как я могу захватить переменные сеанса php в javascript без обновления страницы? Каково состояние TDD и / или BDD в PHP? Как получить продолжительность видео с помощью API YouTube? JavaScript QR Code Reader – можно ли это сделать? Или, удаленный сервис? Вставка нескольких строк в базу данных MySQL из таблицы Отсутствие повышения производительности с APC на WampServer Заголовок не установлен – SlimFramework Помогите мне найти $ htmlOption Описание в Yii php – обновить sql-оператор с краткими строками Создание единого объекта из существующей базы данных с помощью symfony2 и доктрины

как запомнить положение прокрутки страницы

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

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


Вот способ jquery:

jsfiddle (просто добавьте /show в конце URL- адреса, если вы хотите просмотреть его за пределами фреймов)

Очень важно, что вам понадобится плагин jquery cookie .

JQuery:

 // When document is ready... $(document).ready(function() { // If cookie is set, scroll to the position saved in the cookie. if ( $.cookie("scroll") !== null ) { $(document).scrollTop( $.cookie("scroll") ); } // When a button is clicked... $('#submit').on("click", function() { // Set a cookie that holds the scroll position. $.cookie("scroll", $(document).scrollTop() ); }); }); 


Вот еще код из исходного ответа:

jsfiddle

JQuery:

 // When document is ready... $(document).ready(function() { // If cookie is set, scroll to the position saved in the cookie. if ( $.cookie("scroll") !== null ) { $(document).scrollTop( $.cookie("scroll") ); } // When scrolling happens.... $(window).on("scroll", function() { // Set a cookie that holds the scroll position. $.cookie("scroll", $(document).scrollTop() ); }); }); 

@ Ответ Коди напомнил мне что-то важное.

Я только сделал это, чтобы проверить и прокрутить до положения по вертикали .

(1) Решение 1:

Во-первых, получите ссылку прокрутки по JavaScript при нажатии кнопки отправки.

Во-вторых, укажите это значение позиции прокрутки в данных, представленных на страницу PHP.

В-третьих, PHP-код должен записать это значение в сгенерированный HTML как переменную JS:

 <script> var Scroll_Pos = <?php echo $Scroll_Pos; ?>; </script> 

В-четвертых, используйте JS для перехода к позиции, указанной переменной JS 'Scroll_Pos'

(2) Решение 2:

Сохраните позицию в файле cookie, затем используйте JS для перехода к сохраненной позиции при перезагрузке страницы.

Сохраните позицию в скрытом поле.

 <form id="myform"> <!--Bunch of inputs--> </form> 

чем с jQuery хранить scrollTop и scrollLeft

 $("form#myform").submit(function(){ $(this).append("<input type='hidden' name='scrollTop' value='"+$(document).scrollTop()+"'>"); $(this).append("<input type='hidden' name='scrollLeft' value='"+$(document).scrollLeft()+"'>"); }); 

Затем при следующей перезагрузке выполните перенаправление или распечатайте их с помощью PHP

 $(document).ready(function(){ <?php if(isset($_REQUEST["scrollTop"]) && isset($_REQUEST["scrollLeft"])) echo "window.scrollTo(".$_REQUEST["scrollTop"].",".$_REQUEST["scrollLeft"].")"; ?> }); 

Ну, если вы используете _targets в своем коде, вы можете сохранить это.

Или вы можете сделать запрос ajax, чтобы получить window.height.

  document.body.offsetHeight; 

Затем отбросьте их, дайте переменной javascript и переместите страницу для них.