zoukankan      html  css  js  c++  java
  • 鼠标滚轮事件

    不同浏览器存在差异,鼠标滚轮事件在各个浏览器中绑定事件如下:
    IE Chrome Opera Safari浏览器的注册事件:

    window.onmousewheel = document.onmousewheel = scrollFunc;      //scrollFunc为定义的事件名

    Firefox浏览器的注册事件:

    if (document.addEventListener) { 
        document.addEventListener('DOMMouseScroll', scrollFunc, false);  //scrollFunc为定义的事件名
    }

    不同浏览器滚动事件的属性也有差异:
    IE Chrome Opera Safari浏览器的属性:wheelDelta
    wheelDelta取值为±120,+120表示滚轮向上,-120表示滚轮向下
    Firefox浏览器滚动事件的属性:detail
    wheelDelta取值为±3,+3表示滚轮向上,-3表示滚轮向下

    实际应用:

    var scrollFunc = function (e) {  
        e = e || window.event;  
        if (e.wheelDelta) {             //IE Chrome Opera Safari       
            if (e.wheelDelta > 0) { 
                //业务操作...
                e.stopPropagation();    //终止事件的进一步传播
            }  
            if (e.wheelDelta < 0) { 
                //业务操作...
                e.stopPropagation();
            }  
        } 
        else if (e.detail) {            //Firefox
            if (e.detail < 0) { 
                //业务操作...
                e.stopPropagation();    //终止事件的进一步传播
            }  
            if (e.detail > 0) { 
                //业务操作...
                e.stopPropagation();
            }  
        }
      } 
      //注册事件
      if (document.addEventListener) {    //Firefox
        document.addEventListener('DOMMouseScroll', scrollFunc, false);  
      }  
      //IE Chrome Opera Safari
      window.onmousewheel = document.onmousewheel = scrollFunc;   
    
    

    因为事件属性wheelDelta和detail存在负值,if (e.wheelDelta)和else if (e.detail)这两段代码判断语句是否有误?
    是没有错误的,在js中if条件为null/undefined/0/NaN/”“表达式时,统统被解释为false,此外均为true。
    js中if表达式规则文章

  • 相关阅读:
    日期时间基本知识
    VScode 常用操作
    js实现图片的Blob base64 ArrayBuffer 的各种转换
    window.postMessage()实现(iframe嵌套页面)跨域消息传递
    软件工程概论个人总结
    软件工程学习进度表(第十六周)
    《构建之法》阅读笔记
    软件工程学习进度表(第十五周)
    《人月神话》阅读笔记06
    《人月神话》阅读笔记05
  • 原文地址:https://www.cnblogs.com/wangqilong/p/10088374.html
Copyright © 2011-2022 走看看