用户停止滚动后,滚动到顶部并刷新页面

时间:2019-05-16 22:28:06

标签: javascript

我正在博物馆环境中展示一个网络项目。这是一个依赖滚动的项目,需要在用户之间重置。我想设置一个计时器,它将在用户离开计算机后将页面滚动到顶部并重新加载。我做了一些研究,这是我到目前为止所确定的。如果用户在两分钟后仍未滚动,它将重置页面:

// Setup isScrolling variable
let isScrolling;

// Listen for scroll events
window.addEventListener('scroll', event => {

    // Clear our timeout throughout the scroll
    window.clearTimeout(isScrolling);

    // Set a timeout to run after scrolling ends
    isScrolling = setTimeout(() => {

    // scroll to top and refresh page
    console.log('Scrolling has stopped.');
    window.scrollTo(0,0);
    location.reload();

    }, 120000);

}, false);

这是解决此问题的最佳方法吗?在每个滚动上运行事件侦听器是否会非常耗费资源,或者这几乎是这样做的方式?

1 个答案:

答案 0 :(得分:0)

似乎还可以。您可以考虑的一件事是去抖动: http://benalman.com/code/projects/jquery-throttle-debounce/examples/debounce/

这将防止在每个滚动事件上设置新的超时。