js中的鼠標滾輪事件


##  事件對象 event
    1 event事件對象,表示用來獲取事件的詳細信息,比如得到鼠標的橫坐標:事件對象.clientX(clientX是可視區坐標)
            window.onclick = function(ev){
                var oEvent = ev || event;//event為IE8和IE8以下瀏覽器瀏覽器事件對象可以直接使用;
                //以上代碼可以判斷是否傳遞了事件對象參數,如果傳遞了則使用傳遞的事件對象ev,否則使用window.event
                alert(oEvent.type);//click類型
            }
    2 事件對象的兼容寫法
        a.IE8和IE8以下瀏覽器不能傳遞參數,只能使用window.event對象。
        b.谷歌瀏覽器既可以傳遞事件對象參數,也可以使用window.envent對象,十分全面。
        c.火狐瀏覽器只能使用傳遞的事件對象參數。
        因此針對不同瀏覽器,兼容性寫法如下:
            事件.事件類型 = function(ev){//事件類型如鼠標點擊事件
                var oEvent = ev || event;
            }
            

## 鼠標滾輪事件
    1 非火狐: mousewheel
        這里,event.wheelDelta < 0向下滾動
    2 火狐:DOMMouseScroll
        這里,event.detail > 0 為向下滾動,event.detail < 0 為向上滾動
    3.瀏覽器兼容性寫法如下:
        document.onmousewheel = wheelHander;//非火狐
        document.addEventListener('DOMMouseScroll',wheelHander,false);//火狐
        
        function wheelHander(e){
            //事件的兼容性寫法 
            oEvent = e || window.event;
            if(oEvent.wheelDelta){//非火狐
                if(oEvent.wheelDelta > 0){//向上滾動
                    
                }else{//向下滾動
                    
                }
            }else if(oEvent.detail){
                if(oEvent.detail > 0){//向下滾動
                    
                }else{//向上滾動
                    
                }
            }
        }
            
    3 案例:使用滾輪改變圖片的大小
        
        var img = document.getElementsByTagName('img')[0];
        
        //非火狐實現滾輪效果
        document.onmousewheel = wheelHander;//非火狐
        //火狐一家使用DOMMouseScroll實現滾輪效果
        document.addEventListener('DOMMouseScroll',wheelHander,false);
        
        function wheelHander(e){
            oEvent = e || window.event;
            if(oEvent.wheelDelta){//非火狐
                if(oEvent.wheelDelta > 0){//向上滾動
                    img.height++;
                }else{//向下滾動
                    img.height--;
                }
            }else if(oEvent.detail){
                if(oEvent.detail > 0){//向下滾動
                    img.height--;
                }else{//向上滾動
                    img.height++;
                }
            }
        }
        

 


 

獲取更多前端知識,請關注下方二維碼 ↓↓↓↓↓↓

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM