美文网首页知识点
js下的鼠标滚动事件

js下的鼠标滚动事件

作者: 小焲 | 来源:发表于2017-08-22 16:10 被阅读26次

我们在日常使用中会经常使事件用到鼠标滚轮,但是当我们想自定义鼠标滚轮事件时就会遇到一些麻烦--滚轮事件的兼容性有些独特。我们来看一下。

   /*
    *    滚轮事件
    *   onmousewheel
    *       兼容chrome和IE 不兼容火狐
    *    e.wheelDelta;
    *       记录滚动事件的方向
    *       负值是往后拉
    *       正值就是往前推
    *       为120的倍数
    **/
obj.onmousewheel =function (e) {
       //...
}
   /*
    *    滚轮事件
    *   DOMMouseScroll
    *       只支持火狐
    *    e.detail;
    *       记录滚动事件的方向
    *       正值是往后拉
    *       负值就是往前推
    *       为3的倍数
    **/
obj.DOMMouseScroll=function (e) {
       //...
}

这是我们在使用时就要注意这两种方法的差别,主要是滚动事件的方向记录。

  1. 前滚后滚记录的正负值不同
  2. 每次滚动记录的值得大小不同

所谓我们写兼容的时候要考虑这个问题
兼容写法:

function mousewheel(obj,fn) {
    function eFn(e) {
        e = e || window.event;
        if(fn.call(this,e,-e.wheelDelta/120||e.detail/3)===false)!-[1,]?e.returnValue=false:e.preventDefault();
}
    var eName = document.onmousewheel===null?"mousewheel":"DOMMouseScroll";
    document.addEventListener?obj.addEventListener(eName,eFn):obj.attachEvent("on"+eName,eFn)
   }
//添加事件
function addEvent(obj,eName,eFn) {
    if(obj.attachEvent){ //判断支不支持attacgevent方法,如果支持就是ie678
        obj.attachEvent("on"+eName,eFn) //兼容IE678
    }else{
        obj.addEventListener(eName,eFn)//兼容标准浏览器
    }
 }

相关文章

  • js下的鼠标滚动事件

    我们在日常使用中会经常使事件用到鼠标滚轮,但是当我们想自定义鼠标滚轮事件时就会遇到一些麻烦--滚轮事件的兼容性有些...

  • 整屏滚动 幻灯片

    整屏滚动 jquery.mousewheel插件使用 jquery中没有鼠标滚轮事件,原生js中的鼠标滚轮事件不兼...

  • 阻止鼠标滚动穿透事件

    在弹窗内滚动鼠标会触发页面的滚动条滚动,这就是鼠标滚动穿透事件 1.js解决 2,窗口加载完成时,给body元素添...

  • 17_day 整屏幕滚动

    整屏滚动: jquery.mousewheel插件使用 : jquery中没有鼠标滚轮事件,原生js中的鼠标滚轮事...

  • 整屏幕滚动

    整屏滚动: jquery.mousewheel插件使用 : jquery中没有鼠标滚轮事件,原生js中的鼠标滚轮事...

  • 前端的整屏滚动

    整屏滚动: jquery.mousewheel插件使用 : jquery中没有鼠标滚轮事件,原生js中的鼠标滚轮事...

  • 整屏幕滚动

    整屏滚动: jquery.mousewheel插件使用 : jquery中没有鼠标滚轮事件,原生js中的鼠标滚轮事...

  • 整屏幕滚动

    整屏滚动: jquery.mousewheel插件使用 : jquery中没有鼠标滚轮事件,原生js中的鼠标滚轮事...

  • 整屏幕滚动

    整屏滚动: jquery.mousewheel插件使用 : jquery中没有鼠标滚轮事件,原生js中的鼠标滚轮事...

  • 整屏滚动

    整屏滚动: jquery.mousewheel插件使用 : jquery中没有鼠标滚轮事件,原生js中的鼠标滚轮事...

网友评论

    本文标题:js下的鼠标滚动事件

    本文链接:https://www.haomeiwen.com/subject/qwsldxtx.html