鼠标滚轮事件

通过一个小例子来介绍鼠标的滚轮事件,通过鼠标向上滚动来放大图片,向下滚动来缩小图片
下面是HTML文档

  <!DOCTYPE html>
  <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>滚轮练习</title>
    <style type="text/css">
        img{
            width: 200px;

        }
    </style>
    </head>
    <body>
        <img src="2.jpg">
    </body>
    <script type="text/javascript" src="mousewheel.js"></script>
    <script type="text/javascript">
        var img=document.getElementsByTagName("img")[0];
        var scales=1;
        wheel(img,function (value){
            if(value){
                if(scales<4){
                    scales+=0.1;
                    img.style.transform="scale("+scales+")";
                }
            }else{
                if(scales>0.4){
                    scales-=0.1;
                    img.style.transform="scale("+scales+")";
                }
            }
        })
    </script>
</html>

下面是封装的滚轮事件

  //onmousewheel;针对于非火狐浏览器
  // 向上滚动是负值
  //火狐浏览器滚动方式
  // 向上滚动是正值
  //封装函数返回向上或者向下
  function wheel(obj,callback){
      // 标记当前是向上还是向下
      var down=false;
      //判断浏览器是不是火狐
      var str=window.navigator.userAgent;
      if(str.indexOf("Firefox")!=-1){
          obj.addEventListener("DOMMouseScroll",function(e){
          var ev=e || window.event;
          if(ev.detail<0){
              down=true;
          }else{
              down=false;
          }
          callback(down);
       },false);
      }else{
           obj.onmousewheel=function(e){
           var ev=e || window.event;
           if(ev.wheelDelta<0){
              down=false;
           }else{
              down=true;
           }
           // 函数回调 将正确的方向结果返回给前面
           callback(down);
           }
      }
      return down;
  }

运行结果如下:
原图:


11722CA8-4E5D-477E-B7A3-574B3CEEC61E.png

向上滚动放大图片:


B1EAD300-C076-4CBD-A07E-2D78FB1A8B15.png

向下缩小图片:
15EEBA67-DA68-4E7A-9738-06467BFB85CF.png

通过这个函数就可以对图片进行处理了,这个函数可以作为一个插件用来对网页中使用到滚轮事件的地方。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 鼠标滚轮事件有兼容性的问题,主要是firfox和其他浏览器的差异,以下就这两种情况分开说明: 其他浏览器 事件名称...
    llpy阅读 355评论 0 1
  • 使用js对鼠标滚轮事件进行控制,滚轮事件其中考虑浏览器兼容性问题其中火狐浏览器事件为:"DOMMousescrol...
    小雞雞炖蘑菇阅读 429评论 1 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,637评论 25 708
  • 今天的我,不,是最近的我很迷惑,因为到了考试月,考开始思考我为什么花的时间不很多人都多,但就是得不到别人的高分呢?...
    12d051326acc阅读 148评论 0 0
  • 9月中旬,我就已经确定被保送至B攻读硕士研究生。在这个9月里,我经历了焦虑、彷徨,又经历了欣慰和松弛。室友除...
    天天__阅读 270评论 0 0