javascript - 检测总滚动距离

标签 javascript scroll

我想检测用户在网站上滚动的总距离。因此我想将向下滚动距离和向上滚动距离相加。

例如:用户向下滚动 150 像素并滚动回页面顶部,结果应为 300 像素。

使用window.pageYOffset我可以检测向下的距离。如何将两个方向相加?

//编辑:

values

最佳答案

您需要一个计数器 - totalOffset。您需要检查当前滚动位置 - currOffset。您需要一个在滚动时触发并计算当前位置和缓存位置之间的距离并更新计数器和缓存位置的函数。

let totalOffset = 0;
let currOffset = window.pageYOffset;
window.addEventListener(
  "scroll",
  () => {
    let addedOffset = Math.abs(currOffset - window.pageYOffset);
    totalOffset += addedOffset;
    currOffset = window.pageYOffset;
    console.log('the total scroll in px is: ', totalOffset);
  },
  false
);
<div style="min-height:2000px">
<div>

它在 SO 片段运行器中可能无法正常工作,但在浏览器中似乎工作正常。

关于javascript - 检测总滚动距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53253011/

相关文章:

javascript - jQuery 在滚动时加载更多数据

javascript - scrollIntoView 仅适用于 IFRAME

javascript - ScrollTo 适用于所有浏览器,但完整回调会多次触发

javascript - $timeout 不是函数 angularjs

javascript - 响应 View 中 React Slick Slider 的宽度错误

javascript - 如何通过包管理器安装最新稳定版本的 Javascript 包?

ios - Momentum 滚动错误 iOS

javascript - 从串联函数谷歌脚本中删除不需要的分隔符

javascript - 如何使用 Chrome 开发者工具执行一段 JavaScript 代码

vim - 终端vi模式: Scrolling through previous lines and outputs