JS如何判断鼠标滚轮向上还是向下滚动

摘要:
前几天偶然看到某前端群有人在问:JS如何判断鼠标滚轮向上还是向下滚动?我想了想,有点蒙蔽,心想难道不是用scrollTop来判断吗?但我不确定,也出于好奇心,于是开始了一番探索思路:通过event对象里wheelDelta和detail值的正负来判断鼠标滚轮向上还是向下,示例代码如下Demo˂!

前几天偶然看到某前端群有人在问:JS如何判断鼠标滚轮向上还是向下滚动?

我想了想,有点蒙蔽,心想难道不是用scrollTop来判断吗?

但我不确定,也出于好奇心,于是开始了一番探索

思路:通过event对象里wheelDelta和detail值的正负来判断鼠标滚轮向上还是向下,示例代码如下

Demo

<!DOCTYPE HTML>
<html>
     <head>
           <meta charset="UTF-8" />
           <title>JS如何判断鼠标滚轮向上还是向下滚动</title>
           <style>
                div {
                     width:200px;
                     height:1200px;
                     background-color:darkseagreen;
                }
           </style>
     </head>
     <body>
           <div></div>
           <script>
                varscrollFunc = function(e) {
                     vare =e ||window.event;
                     if(e.wheelDelta) {   
                           if(e.wheelDelta > 0) {     //当鼠标滚轮向上滚动时
alert("鼠标滚轮向上滚动");
                           }
                           if(e.wheelDelta < 0) {     //当鼠标滚轮向下滚动时
alert("鼠标滚轮向下滚动");
                           }
                     } else if(e.detail) {
                           if(e.detail < 0) {   //当鼠标滚轮向上滚动时
alert("鼠标滚轮向上滚动");
                           }
                           if(e.detail > 0) {   //当鼠标滚轮向下滚动时
alert("鼠标滚轮向下滚动");
                           }
                     }
                }
                //给页面绑定鼠标滚轮事件,针对火狐的非标准事件 
window.addEventListener("DOMMouseScroll", scrollFunc)
                //给页面绑定鼠标滚轮事件,针对Google,mousewheel非标准事件已被弃用,请使用 wheel事件代替
window.addEventListener("wheel", scrollFunc)
                //ie不支持wheel事件,若一定要兼容,可使用mousewheel
window.addEventListener("mousewheel", scrollFunc)
           </script>
     </body>
</html>

这里有7个注意事项

①:wheelDelta值为正,滚动条向上滚动;值为负,滚动条向下滚动,

detail值刚好相反,值为正,滚动条向下滚动;值为负,滚动条向上滚动

②:wheelDelta值主要针对iegoogledetail值只针对火狐

③:mousewheel非标准事件也被弃用,现官方推荐使用wheel事件代替

④:DOMMouseScroll非标准事件是专为火狐量身打造

safari 13以下低版本不支持wheel事件

⑥:ie不支持wheel事件,若一定要兼容ie,可使用mousewheel

鼠标点击滚动条后不释放,并直接上下拖动滚动条时上面代码不适用

补充官方说明:

JS如何判断鼠标滚轮向上还是向下滚动第1张

原文:https://blog.csdn.net/kongjiea/article/details/18557407(原文detail值判断条件写反了,上面示例代码是我更正和优化后的)

免责声明:文章转载自《JS如何判断鼠标滚轮向上还是向下滚动》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇eclipse安装activiti工作流插件C#中的数字格式化、格式日期格式化[转]下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JS实现日程安排 日程安排插件

    代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EmpWeekPlan.aspx.cs" Inherits="Aepri.InfoDev.DPP.Web.PlanManage.EmpWeekPlan" %> <!DOCTYPE html>...

c++与js脚本交互,C++调用JS函数/JS调用C++函数

<!DOCTYPE html> <html> <body> <h1>我的第一段 JavaScript</h1> <p> JavaScript 能够对事件作出反应。比如对按钮的点击: </p> <button type="button" onc...

WKWebView和JS交互

 // 1.WKWebView的配置        WKUserContentController *userContentController = [[WKUserContentController alloc] init];        [userContentController addScriptMessageHandler:self name:...

RSA加密前端JS加密,后端asp.net解密,报异常

RSA加密前端JS加密,后端asp.net解密,报异常 参考引用:http://www.ohdave.com/rsa/的JS加密库 前端JS加密代码: function GetChangeStr() { debugger; var pwdStr = document.getElementById("txtPa...

JS解析XML文件和XML字符串

详细内容请点击 JS解析XML文件 复制代码<script type='text/javascript'>loadXML = function(xmlFile){var xmlDoc=null;//判断浏览器的类型//支持IE浏览器if(!window.DOMParser && window.ActiveXObject){var...

在Delphi中高效执行JS代码

因为一些原因,需要进行encodeURIComponent和decodeURIComponent编码,在Delphi中找了一个,首先是发现不能正确编码+号,后面强制处理替换了,勉强可用。 后面发现多次使用后delphi自带的HttpEncode会报Out of Memory. 以上可能是我使用的不好,但没有找到解决办法。 后面想到直接采用运行JavaScr...