Задать вопрос
Ingernirated
@Ingernirated
Романыч

Как сделать событие scroll не таким резким?

при попытке прокрутить, резко перемещается на указанное место, а если в функции сделать y +=z, то он не постепенно опускается, а максимально вниз, как это исправить, добавить плавности и контролировать пошаговое перелистывание?
var z = 500;
var y = 0;

function move() {
	y = z;
	window.scrollTo(0,y);
}
window.addEventListener("scroll", move);
  • Вопрос задан
  • 723 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
yarkovaleksei
@yarkovaleksei
Это твинк. Основной акк: @yarkov (в бане)
let timer = null;
function scroll() {
  let top = Math.max(document.body.scrollTop, document.documentElement.scrollTop);
  if (top > 0) {
    window.scrollBy(0, ((top + 100) / -10));
    timer = setTimeout(function() {
      scroll();
    }, 20);
  } else {
    clearTimeout(timer);
  }
  return false;
}
scroll();


Вариант с использованием requestAnimationFrame:
https://jsfiddle.net/yarkov_aleksei/fxs215kd/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы