Событие 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 "услышат" событие.