乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      瀏覽器兼容 – 事件兼容(1): 鼠標滾輪事件的firefox兼容

       路人甲Java 2021-08-28

      時代的印記,在W3C規(guī)范尚未形成,ECMAScript標準尚未建立的上古時代,各家瀏覽器廠商都形成了各自對JS的理解,繼而各自打下各自的江山,建立各自的帝國。

      正是因為各家瀏覽器對JS的理解和實現不同,繼而導致了后續(xù)的各種不一致,逼得可憐的前端人不得不去兼容各種不同的瀏覽器。今次話題:WebKit內核瀏覽器、Gecko內核瀏覽器 的鼠標滾輪事件兼容

      1、判定瀏覽器所屬

      既然是瀏覽器的兼容,那么肯定要先知道你所用的瀏覽器是什么瀏覽器

      function getBrowserType() {
        var userAgent = navigator.userAgent;
        alert(userAgent);
        var isOpera = userAgent.indexOf("Opera") > -1; // Opera瀏覽器
        var isIE10orLess =
          userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; // IE10以下
        var isIE11 =
          userAgent.indexOf("Trident") > -1 && userAgent.indexOf("rv:11.0") > -1; // IE11
        var isFirefox = userAgent.indexOf("Firefox") > -1; // 火狐瀏覽器
        var isSafari =
          userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") === -1; // Safari瀏覽器
        var isChrome = // 谷歌瀏覽器
          userAgent.indexOf("Chrome") > -1 &&
          userAgent.indexOf("Safari") > -1 &&
          userAgent.indexOf("Edge") === -1;
        // Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
        var isEdge = userAgent.indexOf("Edge") > -1 && !isIE10orLess; // Edge瀏覽器
      
        var trident = userAgent.indexOf("Trident") > -1; //IE內核
        var presto = userAgent.indexOf("Presto") > -1; //opera內核
        var webKit = userAgent.indexOf("AppleWebKit") > -1; //蘋果、谷歌內核
        var gecko =
          userAgent.indexOf("Gecko") > -1 && userAgent.indexOf("KHTML") === -1; //火狐內核
        var mobile = !!userAgent.match(/AppleWebKit.*Mobile.*/); //是否為移動終端
        var ios = !!userAgent.match(/\(i[^;]+;( userAgent;)? CPU.+Mac OS X/); //ios終端
        var android =
          userAgent.indexOf("Android") > -1 || userAgent.indexOf("Adr") > -1; //android終端
        var iPhone = userAgent.indexOf("iPhone") > -1; //是否為iPhone或者QQHD瀏覽器
        var iPad = userAgent.indexOf("iPad") > -1; //是否iPad
        var webApp = userAgent.indexOf("Safari") === -1; //是否web應該程序,沒有頭部與底部
        var weixin = userAgent.indexOf("MicroMessenger") > -1; //是否微信 (2015-01-22新增)
        var qq = userAgent.match(/\sQQ/i) === " qq"; //是否QQ
        var windowPhone = userAgent.indexOf("Windows Phone") > -1;
      
        if (isIE10orLess) {
          var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
          reIE.test(userAgent);
          var fIEVersion = parseFloat(RegExp["$1"]);
          if (fIEVersion === 7) {
            return "IE7";
          } else if (fIEVersion === 8) {
            return "IE8";
          } else if (fIEVersion === 9) {
            return "IE9";
          } else if (fIEVersion === 10) {
            return "IE10";
          } else {
            return "0";
          } //IE版本過低
        }
        if (isIE11) {
          return "IE11";
        }
        if (isFirefox) {
          return "Firefox";
        }
        if (isOpera) {
          return "Opera";
        }
        if (isSafari) {
          return "Safari";
        }
        if (isChrome) {
          return "Chrome";
        }
        if (isEdge) {
          return "Edge";
        }
      }

      2、添加、移除鼠標滾輪事件

      // 添加鼠標滾輪事件監(jiān)聽
      function addMouseScrollEventListener() {
        let browserType = this.getBrowserType()
        if (browserType === 'Chrome' || browserType.includes('IE')) {
          // chrome and ie
          window.addEventListener('mousewheel', this.handleScroll, false)
        } else {
          // firefox
          window.addEventListener('DOMMouseScroll', this.handleScroll, false)
        }
      }
      
      // 移除鼠標滾輪事件監(jiān)聽
      function removeMouseScrollEventListener() {
        let browserType = this.getBrowserType()
        if (browserType === 'Chrome' || browserType.includes('IE')) {
          window.removeEventListener('mousewheel', this.handleScroll)
        } else {
          window.removeEventListener('DOMMouseScroll', this.handleScroll)
        }
      }

      3、鼠標滾輪事件兼容

      function handleScroll(ev) {
        var oEvent = ev || event;
        var bDown = true; //
        if (oEvent.deltaY) {
          // ie chrome
          // var direction = e.deltaY > 0 ? 'down' : 'up' // 該語句可以用來判斷滾輪是向上滑動還是向下
          bDown = oEvent.deltaY > 0; // 大于0向下
        } else {
          // ff event事件對象內沒有deltaY屬性
          bDown = oEvent.detail > 0; // 大于0向下
        }
      }

       

      總結:一句話,瀏覽器兼容真坑!

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多