js滾輪事件相容性問題需要注意哪些,js滾輪事件相容性

來源:互聯網
上載者:User

js滾輪事件相容性問題需要注意哪些,js滾輪事件相容性

本文執行個體為大家解析了js滾輪事件需要注意的相容性問題,供大家參考,具體內容如下

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style>  #div {   width: 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;Firefox下報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>

滾輪事件的相容性問題比較多,所以大家在實現這個效果的時候也要隨時測試相容性的問題。

暫時整理的大概就這些,還有很多不足的地方,大家多提寶貴意見!

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.