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

3

我正在博物馆展示一个与滚动相关的网站项目,需要在用户之间进行重置。我希望设置一个计时器,当用户离开电脑后,将页面滚动到顶部并重新加载。我已经进行了一些研究,目前这是我确定下来的方案。如果用户在两分钟内没有滚动,则会重置页面:

// 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)?页面刷新已经重置了页面,对吧? - Rob Monhemius
我之所以称其为“before”,是因为在重新加载页面之前,我需要将页面滚动到顶部。如果我只是重新加载,页面仍将停留在重新加载之前的位置。我会查看代码审查,谢谢。 - InspectorDanno
1
从使用案例 / 设计的角度来看,您需要确保用户的首要任务不是查看他们向下滚动的内容。在超时时放置一个覆盖层,在上面指示“您是在潜水还是要查看原始内容”,可能比直接把屏幕弹起来更有效。 - wahwahwah
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接