Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Сохранить положение прокрутки в div (https://javascript.ru/forum/dom-window/64334-sokhranit-polozhenie-prokrutki-v-div.html)

кирикала 03.08.2016 22:25

Сохранить положение прокрутки в div
 
Как сохранить положение прокрутки в div при overflow: auto; при перезагрузке страницы/выключении компьютера ? Дайте люди плз хоть кто-нить краткий и понятный код в одну строку ....

warren buffet 03.08.2016 23:32

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

Decode 04.08.2016 00:26

кирикала,
window.onscroll = function() {
	localStorage.setItem('value', window.pageYOffset);
};

localStorage.getItem('value') && window.scrollTo(0, localStorage.getItem('value'));

warren buffet 04.08.2016 05:07

Decode, А вот и не угадал. ему надо див скроллить. )))

кирикала 04.08.2016 05:35

Цитата:

Сообщение от Decode (Сообщение 424303)
кирикала,
window.onscroll = function() {
	localStorage.setItem('value', window.pageYOffset);
};

localStorage.getItem('value') && window.scrollTo(0, localStorage.getItem('value'));

тут надо вставит наверно гдето, правильно?
document.getElementById('div')

warren buffet 04.08.2016 07:26

Цитата:

Сообщение от кирикала
правильно

Правильно. Вместо window.pageYOffset тебе надо document.getElementById('div').scrollTop и это будет первая строка, над второй еще надо думать.

рони 04.08.2016 07:29

Сохранение вертикальной прокрутки блока
 
кирикала,
https://learn.javascript.ru/metrics
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #slider {
       width: 200px;
       height: 100px;
       overflow: auto;
  }

  </style>

  <script>
   window.addEventListener('DOMContentLoaded', function() {
   var div = document.querySelector('#slider');
   var scroll = localStorage.getItem('scroll')||0;
   div.scrollTop = scroll;
   div.addEventListener('scroll', function() {
   localStorage.setItem('scroll', div.scrollTop);
   })
   });
  </script>
</head>

<body>
<div id="slider"><P>LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT. AUDEO DICERE, INQUIT. QUID ERGO ALIUD INTELLEGETUR NISI UTI NE QUAE PARS NATURAE NEGLEGATUR? DIC IN QUOVIS CONVENTU TE OMNIA FACERE, NE DOLEAS. DUO REGES: CONSTRUCTIO INTERRETE. </P></div>

</body>
</html>

кирикала 04.08.2016 07:31

спасибки Рони

кирикала 04.08.2016 07:34

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

warren buffet 04.08.2016 07:36

Короче

window.addEventListener('beforeunload',function(){

	var id='yourdiv',div=document.getElementById(id);
	if(localStorage && div) localStorage.setItem(id,div.scrollTop);

});

window.addEventListener('load',function(){

	var id='yourdiv',y=localStorage.getItem(id),div=document.getElementById(id);
	if(y && div) div.scrollTop=y;

});


Но тебе не подойдет, ибо тут очень много строк, а тебе надо одну.


Часовой пояс GMT +3, время: 15:42.