Сохранить положение скролла при переходе по ссылке
Здравствуйте! Очень прошу помочь решить такую вот задачку.
Есть два дива (два "столбца") с overflow:auto, в одном из которых выводится список записей WP, а во втором диве выводиться полная статья. Задумка в том, чтобы при клике по записи в левом диве, она выводилась полностью в правом. Все реализовал, осталось только сделать так, чтобы при клике по ссылке слева и переходе на новую страничку в диве слева скролл оставался на том же месте. Собрал примерный план действий, но не могу его реализовать кодом ;( 1. Создаем обработчик события клика по ссылке 2. Получаем координаты текущего положения скрола и сохраняем их в localestorage 3. Перенаправляем пользователя по самой ссылке 4. На другой странице вешаемся на событие onload в обработчике 5. Извлекаем координаты прокрутки из localestorage 6. Прокручиваем скрол до нужной позиции. Вот такая страница: <?php $getcat = get_the_category(); $cat = $getcat[0]->cat_ID; ?> <div class="layer"> <?php if (have_posts()) : query_posts('cat='. $cat); while (have_posts()) : the_post(); ?> <h3><a href="<?php the_permalink(); ?>" name="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> <?php the_excerpt(); endwhile; endif; wp_reset_query(); ?> </div> <!-- Полный текст статьи --> <div class="layer2"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <h3><?php the_title(); ?></h3> <?php the_content(); ?> <?php endwhile; ?> <?php endif; ?> </div> |
Решил вопрос вот этими строками
<script>
window.addEventListener('DOMContentLoaded', function() { var div = document.querySelector('.layer'); var scroll = localStorage.getItem('scroll')||0; div.scrollTop = scroll; div.addEventListener('scroll', function() { localStorage.setItem('scroll', div.scrollTop);})}); </script> |
Часовой пояс GMT +3, время: 01:15. |