fontendNote
  • docs
  • sources
    • others
      • 数据结构与算法
        • 第一章:绪论
      • 英语阅读积累词汇
      • git
        • 常用Git命令与技巧
        • sourcetree一直提示输入密码的终极解决方案(亲测有效)
      • case
        • 曲线编辑器
          • canvas实现曲线编辑器
      • 计算机常见单词
    • ts
      • ts 配置参考(带注释)
  • source
    • _about
      • 你可能不知道的 vscode 使用技巧
    • _posts
      • css
        • CSS 优化细则
        • sass
          • sass学习笔记
        • 《css世界》书摘
      • js
        • dom
          • 常用js页面跳转方式
          • 跨浏览器的javascript中鼠标滚轮事件
        • performance
          • js性能优化注意事项
      • node
        • npm-package
          • chokidar
        • node中获取正在运行的全部进程数据
        • node中对路径分隔符的兼容性处理
      • tools
        • 你可能不知道的 vscode 使用技巧
      • leetcode
        • 无重复字符的最长子串
        • 题目
  • scaffolds
    • page
    • post
    • draft
Powered by GitBook
On this page
  • 1.事件绑定
  • detail与wheelDelta
  • 兼容写法

Was this helpful?

  1. source
  2. _posts
  3. js
  4. dom

跨浏览器的javascript中鼠标滚轮事件

Previous常用js页面跳转方式Nextperformance

Last updated 5 years ago

Was this helpful?

参考:

1.事件绑定

Firefox使用addEventListener添加滚轮事件

/*Firefox注册事件*/
if(document.addEventListener){
    document.addEventListener('DOMMouseScroll',scrollFunc,false);
}

其中除Firefox外其余均可使用HTML DOM方式添加事件,因此添加事件使用以下方式

/*注册事件*/
if(document.addEventListener){
    document.addEventListener('DOMMouseScroll',scrollFunc,false);
}//W3C
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome

detail与wheelDelta

判断滚轮向上或向下的属性值,现在五大浏览器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上不一致,代表含义一致,detail与wheelDelta只各取两个值,detail只取±3,wheelDelta只取±120,其中FireFox浏览器向下滚动是正值,而其他浏览器是负值。

兼容写法

/**
 * 简易的判断滚动方向   
 */

var scrollFunc=function(e){
     var direct=0;
     e=e || window.event;
    var flag;
     if(e.wheelDelta){//IE/Opera/Chrome
         if(e.wheelDelta>0){
             flag="up";
         }else{
              flag="down";
         }
     }else if(e.detail){//Firefox

     }
 }
24 /*注册事件*/
25 if(document.addEventListener){
26     document.addEventListener('DOMMouseScroll',scrollFunc,false);
27 }//W3C
28 window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari
解析javascript中鼠标滚轮事件
JS滚轮事件(mousewheel/DOMMouseScroll)了解