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

Javascript 用户停止滚动后,滚动到顶部并刷新页面,javascript,Javascript,我正在博物馆里展示一个网络项目。这是一个严重依赖滚动的项目,需要在用户之间重置。我想设置一个计时器,在用户离开计算机后将页面滚动到顶部并重新加载。我做了一些研究,到目前为止我已经确定了这一点。如果用户在两分钟后未滚动,则会重置页面: // Setup isScrolling variable let isScrolling; // Listen for scroll events window.addEventListener('scroll', event => { // C

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

// 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);

这是解决这个问题的最好办法吗?在每个卷轴上运行一个事件监听器会是超级密集型的吗?或者这几乎就是这样做的吗?

看起来还可以。有一件事你可以考虑:


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

这可能应该在代码审阅中公布。但是,为什么要在
location.reload()之前调用
scrollTo(0,0)
?页面刷新会重置页面,对吗?我之前调用它的原因是因为我需要在重新加载之前将页面滚动到顶部。如果我只是重新加载,页面仍将位于重新加载之前的位置。我将查看代码审查,谢谢。我从用例/设计的角度考虑-你需要确保用户没有优先考虑他们滚动到的内容。在超时时放置一个显示“你是在潜伏,还是你想要原始内容”的覆盖可能比仅仅抓拍屏幕更有效。