1

if(scrollToTopButton.addEventListener) {
 scrollToTopButton.addEventListener('click', topScroll);
} else {
 scrollToTopButton.attachEvent('onclick', topScroll);
}

function topScroll(event) { event = event || window.event; var topInterval = setInterval(topScrollUpSteps(event), 20); console.log(event.pageY); function topScrollUpSteps (event) { if (event.client >= 160) { event.pageY = event.pageY - 20; console.log(event); } else { clearInterval(topInterval); } } }

Делаю скрипт плавной прокрутки до верха страницы. Столкнулся с такой проблемой, что setInterval не работает по какой-то причине. Когда я не передаю в аргументе event то пишет, что event не найдет, а когда передаю то просто ничего не происходит. В чем проблема?

uzi_no_uzi
  • 2,186

1 Answers1

2
var topInterval = setInterval(
  function() { topScrollUpSteps(event); }, 20);

Если я правильно понимаю, что Вы хотите сделать, то Вам надо использовать не event.pageY, а window.pageYOffset и window.scrollBy( , );.

https://www.w3schools.com/jsref/prop_win_pagexoffset.asp

  • не работает, просто ничего не происходит – uzi_no_uzi Mar 23 '18 at 19:53
  • @uzi_no_uzi Вызов правильный. Мне непонятно, чего Вы рассчитываете добиться манипуляциями с event.pageY. –  Mar 23 '18 at 19:56
  • скролла вверх, или таким образом не добиться? Просто даже console.log что внутри if не срабатывает при вызове таким образом – uzi_no_uzi Mar 23 '18 at 19:59