• js滚轮事件需要注意的兼容性问题


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #div {
                 300px;
                height: 300px;
                background: red;
            }
        </style>
        <script>
            function addEvent(obj,sEv,fn){
                if(obj.addEventListener){
                    return obj.addEventListener(sEv,fn,false);
                }else{
                    return obj.attachEvent('on' + sEv,fn);
                }
            }
    
            function addWheel(obj,fn){
                function wheel(ev){
                    var oEvent = ev || event;
                    var bDown = true;
                    bDown = oEvent.wheelDelta?oEvent.wheelDelta > 0:oEvent.detail < 0;
                    fn && fn(bDown);
                    oEvent.preventDefault && oEvent.preventDefault();
                    return false;
                }
    ------------------------------------------------------------------
    return false阻止浏览器默认行为,遇到绑定添加的事件的时候就失效了;
    所有要用oEvent.preventDefault();在使用此方法前要做判断;
    ------------------------------------------------------------------
    if(window.navigator.userAgent.indexOf('Firefox') !=-1){ obj.addEventListener('DOMMouseScroll',wheel,false);注:所有以DOM开头的只能通过事件绑定的形式添加此事件; }else{ addEvent(obj,'mousewheel',wheel); } }
    -------------------------------------------------------------------------------------------------
      obj.onmousewheel:滚动鼠标滚轮的时候触发;兼容IE系列和chrome;
    DOMMouseScroll:只能通过事件绑定的形式添加此事件;只兼容FF;
    兼容性问题解决方案:判断浏览器;
    oEvent.wheelDelta:不兼容FF;火狐下报undefined;
    chrome&&IE:
    下:-120;//以具体弹出数字为准
    上:120;

    oEvent.detail:
    FF:
    下:3;//以具体弹出数字为准
    ---------------------------------------------------------------------------------------------------
         window.onload = function () {
    var oDiv = document.getElementById('div');
    addWheel(oDiv,function(bDown){
    oDiv.onmousewheel = null;
    if(bDown){
    oDiv.style.height = oDiv.offsetHeight - 10 + 'px';
    }else{
    oDiv.style.height = oDiv.offsetHeight + 10 + 'px';
    }
    });
    }
    </script>
    </head>
    <body>
    <div id="div"></div>
    </body>
    </html>
    滚轮事件的兼容性问题比较多,所以大家在实现这个效果的时候也要随时测试兼容性的问题。
    暂时整理的大概就这些,还有很多不足的地方,大家多提宝贵意见!^_^
  • 相关阅读:
    流量控制-QoS
    网关冗余-HSRP
    EIGRP负载均衡
    NAT负载均衡
    VLAN是什么
    交换机宽带优化、端口聚合
    二层安全之MAC Flooding解析与解决方法
    弱安全协议探测工具-sslciphercheck
    OpenSSL 与 SSL 数字证书概念贴
    【Linux安全】查看是否存在特权用户以及是否存在空口令用户
  • 原文地址:https://www.cnblogs.com/AKI-LILI/p/6048746.html
Copyright © 2020-2023  润新知