javascript - 区分刷新后的自动滚动和其他类型的滚动

标签 javascript jquery browser

我观察到刷新后,通过按 F5 或什至一些 location.reload();,浏览器会强制滚动到之前的最后位置刷新。

问题是,我们跟踪用户在页面上的进度,并且这种“自动”滚动会触发我们一直放置到刷新前最后一个位置的所有检查点。

我们想知道是否有可能将这种“自动”卷轴与用户制作的卷轴区分开来。

例如,我们有很多:

$(window).scroll(function() {
  var windowMax = $(window).scrollTop()+$(window).innerHeight()/2;
  if (windowMax > .....)
});

有没有办法区分这两种卷轴?

编辑

请注意,我不想阻止自动滚动,我想改变它。

最佳答案

您可以添加一个就绪的事件监听器,并在加载后立即检查 .scrollTop()

var isScrolledAfterRefresh;

$(function() {
    isScrolledAfterRefresh = $(window).scrollTop() > 0;
});

您确实需要确保在触发就绪事件后执行其余代码。

关于javascript - 区分刷新后的自动滚动和其他类型的滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49650282/

相关文章:

javascript - React Component onClick 根据 Prop 类型做一些事情

javascript - checkbox 有 checked 属性但不显示 checked

jquery插件自定义方法

javascript - 如何告诉 JSHint 在另一个 JS 文件中查找定义

javascript - Angular 2,在表单中设置文本输入的值

javascript - 如何使用 Jquery 创建单级面包屑

jquery - 替换换行符让他们使用 jquery

http - 每个服务器的并发HTTP/1.1连接的默认值的官方引用?

html - 如何从 URL 压缩图像?

javascript - 你如何关闭javascript中的窗口?