本文實例講述了JavaScript實現鼠標滾輪控制頁面圖片切換功能。分享給大家供大家參考,具體如下:
鼠標上的滾輪是一個不錯的東東,為什么這么說,因為它能幫助我們快速的瀏覽網頁,快速的進行長篇文章的閱讀。對于web前端的我們來說又怎么能不注重這個鼠標滾輪呢,那么它能如何讓用戶更好的瀏覽網頁呢?
最常見就是圖片的切換了,能通過滾動滾輪進行圖片的瀏覽,省得用戶還要去點下一張,做這種繁瑣的步驟。來看個簡單的例子吧。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>鼠標通過滾動滾輪切換圖片</title><style>#picBox{ width:800px;height:600px; margin:70px auto; }</style><script> var nowPic=1; function MouseWheel(e){ var pic; e=e||window.event; for(i=1;i<4;i++){ if(i==nowPic){ if(e.wheelDelta){//IE pic=document.getElementById("pic"+i); pic.style.display="block"; }else if(e.detail){//Firefox pic=document.getElementById("pic"+i); pic.style.display="block"; } }else{ pic=document.getElementById("pic"+i); pic.style.display="none"; } } if(nowPic>=3){ nowPic=1; }else{ nowPic++; } } /*Firefox注冊事件*/ if(document.addEventListener){ document.addEventListener("DOMMouseScroll",MouseWheel,false); } window.onmousewheel=document.onmousewheel=MouseWheel;//IE/Opera/Chrome</script></head><body> <h3 align="center">鼠標通過滾動滾輪切換圖片</h3> <div id="picBox"> <img src="http://picm.bbzhi.com/dongwubizhi/dongwuheji/dongwuheji_69803_m.jpg" width="800px" height="600px" id="pic1"><span style="white-space:pre"> </span><img src="http://pic1a.nipic.com/2008-12-22/2008122204359187_2.jpg" width="800px" height="600px" id="pic2" style="display:none;"><span style="white-space:pre"> </span><img src="http://imgphoto.gmw.cn/attachement/jpg/site2/20121221/002564a60ce4123e17614e.jpg" width="800px" height="600px" id="pic3" style="display:none;"> </div></body></html>
重點講解下js代碼,不同的瀏覽器鼠標滾輪事件也不一樣,說白點就是兼容性問題,主要是有兩種,onmousewheel(IE/Opera/Safari/Chrome)和DOMMouseScroll(Firefox),如果想兼容firefox,應采用addEventListener監聽,這個函數有3個參數,addEventListener(type,listener,useCapture)
,type就是click,focus......類型,而listener可以直接寫方法function(){},也可以調用寫好的方法體,如我的例子。useCapture是一個布爾值,只有true和false,表示該事件的響應順序,選false則采用bubbing(冒泡)方式,選項true采用Capture方式。對于addEventListener以后會出一個詳解。
在MouseWheel方法中e.wheelDelta兼容IE等其它瀏覽器,每當滾動一次滾輪會返回+3/-3(上滾/下滾),而e.detail兼容Firefox瀏覽器,每當滾動一次滾輪會返回+120/-120(上滾/下滾),通過這些返回的值可以做出是向上還是向下滾動的判斷。而for循環只是讓圖片有順序的隱藏和顯示,相信這個不難看懂。
文中錯誤與疏漏之處歡迎大家指正。
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答