Как симулировать scroll event?

Необходимо симулировать scroll event так, чтобы страница прокручивалась так как и при обычном прокручивание мышью.
Другие варианты прокручивания не подходят. Мне интересует именно честная симуляция события прокрутки мыши с выставлением необходимых параметров.
Буду очень благодарен, если поможете найти способ для этого.
  • Вопрос задан
  • 1991 просмотр
Пригласить эксперта
Ответы на вопрос 1
@dimentimor
Событие scroll- не изменяет значение scrollTop. Это придется делать самому.
Но само событие можно генерировать и "отлавливать", в том числе, передавать с ним нужные значения.

var body = document.getElementsByTagName('body')[0];

// по клику 
window.addEventListener('click', function (e) {

  // создадим кастомное событие типа scroll
  var event = new CustomEvent("scroll", {
    detail: {
      scrollTop: 200 // передадим нужные значения
    }
  });
  // "вызовем" событие
  window.dispatchEvent(event);
});

// добавим слушателя события scroll
window.addEventListener('scroll', function (e) {
  console.log(e);
  // если событие не настоящее
  if (!e.isTrusted) {
    body.scrollTop = e.detail.scrollTop; // изменяем scrollTop на переданное значение
  }
});


Теперь по клику страница будет скролиться на 200 px. И все слушатели scroll "услышат" событие.
Ответ написан
Ваш ответ на вопрос

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

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