Прокрутка элемента на JS или jQuery
Скажите, есть ли решение моему вопросу? Имеется:
<div>в котором очень много контента</div>
У него соответственно своя прокрутка. Периодически весь контент этого div обновляется с помощью AJAX. Проблема кроется в том, что после обновления контента в элементе - прокрутка скидывается на начало. Если мы читали что то в конце прокрутки, то всё скидывается на начало. Как этого избежать? Перед AJAX замерять как-то на сколько прокручен div? А после ajax как-то устанавливать длину прокрутки? Но как?
Ответы (1 шт):
Автор решения: Pavel Grishaev
→ Ссылка
Вот простой пример. Прокрутите скролл на любую позицию, и он будет оставаться там, несмотря на добавление текста:
const div = document.querySelector('div');
let scrollTopRemember = 0;
setInterval(()=>{
// Запоминаем позицию скролла
scrollTopRemember = div.scrollTop;
// Добавляем текст
div.innerHTML += `Немного текста добавлено, ${Date.now()}<br>`;
// Восстанавливаем позицию скролла
div.scrollTop = scrollTopRemember;
}, 1000 );
div {
height: 100px;
border: 1px solid gray;
overflow: auto;
}
<div></div>