本文介绍在JavaScript中监听HTML页面上下滚动事件的方法。通过定义scrollFunc函数处理wheelDelta属性,区分鼠标滚轮向上或向下的动作,并在控制台输出日志。示例代码展示了如何在body标签中绑定onscroll事件,实现实时滚动效果的监测与反馈。
滚动事件监听原理与实现
在最近的一个前端项目开发中,为了实现类似Android应用中实时监听页面上下滚动的功能,经过资料查阅,发现由鼠标或类似用户交互动作触发的事件主要包含以下几种情况,具体表现如下图所示:

以下直接提供经过测试验证可用的代码实现方案:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Dome</title>
<script type="text/javascript">
function scroll(){
//console.log("打印log日志");实时看下效果
console.log("开始滚动!");
}
var scrollFunc = function (e) {
e = e || window.event;
if (e.wheelDelta) { //第一步:先判断浏览器IE,谷歌滑轮事件
if (e.wheelDelta > 0) { //当滑轮向上滚动时
console.log("滑轮向上滚动");
}
if (e.wheelDelta < 0) { //当滑轮向下滚动时
console.log("滑轮向下滚动");
}
} else if (e.detail) { //Firefox滑轮事件
if (e.detail> 0) { //当滑轮向上滚动时
console.log("滑轮向上滚动");
}
if (e.detail< 0) { //当滑轮向下滚动时
console.log("滑轮向下滚动");
}
}
}
//给页面绑定滑轮滚动事件
if (document.addEventListener) {//firefox
document.addEventListener('DOMMouseScroll', scrollFunc, false);
}
//滚动滑轮触发scrollFunc方法 //ie 谷歌
window.onmousewheel = document.onmousewheel = scrollFunc;
</script>
</head>
<body onscroll="scroll()">
<div style="height: 2000px;background-color: aqua;"></div>
</body>
</html>
对于不熟悉 console.log("") 用法的开发者,这里提供一张在谷歌浏览器中的运行效果截图供参考:

上述内容即为关于JavaScript监听HTML页面滚动事件的完整分享,希望能为各位提供有价值的参考,同时也欢迎大家继续支持本站。