javascript的鼠标滚轮事件

onmousewheel鼠标滚轮滚动事件(火狐不支持)

但是注意这个事件火狐不支持

document.onmousewheel  = function (){
      alert("我滚了");
}

event.wheelDelta判断鼠标滚轮方向(火狐不支持)

document.onmousewheel  = function (event){
      event = event || window.event //兼容IE8
      //event.wheelDelta可以获取滚动方向,向上滚是正值,向下滚是负值
      //event.wheelDelta不支持火狐
      alert(event.wheelDelta);

      event.wheelDelta>0?alert("向上滚"):alert("向下滚");
    }

DOMMouseScroll鼠标滚动事件(火狐支持)

注意该事件要通过addEventListener()函数绑定

document.addEventListener("DOMMouseScroll",function(){
      alert("我滚了")
    },false);

event.detail判断鼠标滚轮方向(火狐支持)

document.addEventListener("DOMMouseScroll",function(event){
      //event.detail可以获取滚动方向,向上滚是负值-3,向下滚是正值3
      alert(event.detail);

      event.detail>0?alert("向下滚"):alert("向上滚");
    },false);

最后来个小栗子,实现div的高度可以随着鼠标滚轮像金箍棒一样伸缩

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
  <style type="text/css">
    #box1{
      width: 100px;
      height: 100px;
      background-color: red;
      touch-action: none;
    }
    body{
      height: 1000px;
    }
  </style>
  <body>
    <div id="box1">

    </div>
  </body>
</html>
<script type="text/javascript">
  function $(id){
    return document.getElementById(id);
  };

  window.onload = function(){
    var box1 = $("box1")
    box1.onmousewheel  = function (event){
      
      event = event || window.event //兼容IE8
      //判断鼠标滚动方向
      if(event.wheelDelta>0 ||event.detail<0){
        //设置个最小高度免得滚不见了
        if(box1.clientHeight<=10) return ;
        //向上滚 变短10px
        box1.style.height = box1.clientHeight - 10 +"px";
      }else{
        //向下滚 变长10px
        box1.style.height = box1.clientHeight + 10 +"px";
      }
      /*
      *当滚轮滚动时,如果浏览器有滚动条,滚动条会随之滚动
      *这是浏览器的默认行为,如果不希望发生,则可以取消默认行为
      *1.{passive:false}与event.preventDefault()一起是阻止火狐的默认行为
      *2.event.preventDefault()是阻止IE8以上的默认行为,return false 是是阻止IE8以下的默认行为
      *3.css样式中touch-action是阻止谷歌的默认行为
      */
      event.preventDefault && event.preventDefault();
      return false;
    }
    //当浏览器是火狐浏览器时,回调与IE或谷歌浏览器一样的触发滚轮事件的方法
    box1.addEventListener("DOMMouseScroll",box1.onmousewheel, {passive:false});
  }

</script>

关于阻止谷歌浏览器默认行为

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值