JavaScript實(shí)現(xiàn)鼠標(biāo)滾輪控制頁(yè)面圖片切換功能示例
本文實(shí)例講述了JavaScript實(shí)現(xiàn)鼠標(biāo)滾輪控制頁(yè)面圖片切換功能。分享給大家供大家參考,具體如下:
鼠標(biāo)上的滾輪是一個(gè)不錯(cuò)的東東,為什么這么說(shuō),因?yàn)樗軒椭覀兛焖俚臑g覽網(wǎng)頁(yè),快速的進(jìn)行長(zhǎng)篇文章的閱讀。對(duì)于web前端的我們來(lái)說(shuō)又怎么能不注重這個(gè)鼠標(biāo)滾輪呢,那么它能如何讓用戶更好的瀏覽網(wǎng)頁(yè)呢?
最常見(jiàn)就是圖片的切換了,能通過(guò)滾動(dòng)滾輪進(jìn)行圖片的瀏覽,省得用戶還要去點(diǎn)下一張,做這種繁瑣的步驟。來(lái)看個(gè)簡(jiǎn)單的例子吧。
<!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>鼠標(biāo)通過(guò)滾動(dòng)滾輪切換圖片</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注冊(cè)事件*/
if(document.addEventListener){
document.addEventListener("DOMMouseScroll",MouseWheel,false);
}
window.onmousewheel=document.onmousewheel=MouseWheel;//IE/Opera/Chrome
</script>
</head>
<body>
<h3 align="center">鼠標(biāo)通過(guò)滾動(dòng)滾輪切換圖片</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>
重點(diǎn)講解下js代碼,不同的瀏覽器鼠標(biāo)滾輪事件也不一樣,說(shuō)白點(diǎn)就是兼容性問(wèn)題,主要是有兩種,onmousewheel(IE/Opera/Safari/Chrome)和DOMMouseScroll(Firefox),如果想兼容firefox,應(yīng)采用addEventListener監(jiān)聽(tīng),這個(gè)函數(shù)有3個(gè)參數(shù),addEventListener(type,listener,useCapture),type就是click,focus......類(lèi)型,而listener可以直接寫(xiě)方法function(){},也可以調(diào)用寫(xiě)好的方法體,如我的例子。useCapture是一個(gè)布爾值,只有true和false,表示該事件的響應(yīng)順序,選false則采用bubbing(冒泡)方式,選項(xiàng)true采用Capture方式。對(duì)于addEventListener以后會(huì)出一個(gè)詳解。
在MouseWheel方法中e.wheelDelta兼容IE等其它瀏覽器,每當(dāng)滾動(dòng)一次滾輪會(huì)返回+3/-3(上滾/下滾),而e.detail兼容Firefox瀏覽器,每當(dāng)滾動(dòng)一次滾輪會(huì)返回+120/-120(上滾/下滾),通過(guò)這些返回的值可以做出是向上還是向下滾動(dòng)的判斷。而for循環(huán)只是讓圖片有順序的隱藏和顯示,相信這個(gè)不難看懂。
文中錯(cuò)誤與疏漏之處歡迎大家指正。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript頁(yè)面元素操作技巧總結(jié)》、《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript數(shù)組操作技巧總結(jié)》、《JavaScript字符與字符串操作技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- 簡(jiǎn)單實(shí)現(xiàn)js頁(yè)面切換功能
- js實(shí)現(xiàn)的鼠標(biāo)滾輪滾動(dòng)切換頁(yè)面效果(類(lèi)似360默認(rèn)頁(yè)面滾動(dòng)切換效果)
- js實(shí)現(xiàn)單一html頁(yè)面兩套css切換代碼
- echarts同一頁(yè)面中四個(gè)圖表切換的js數(shù)據(jù)交互方法示例
- 基于JS實(shí)現(xiàn)翻書(shū)效果的頁(yè)面切換樣式
- 使用AngularJS實(shí)現(xiàn)可伸縮的頁(yè)面切換的方法
- javascript單頁(yè)面手勢(shì)滑屏切換原理詳解
- jQuery實(shí)現(xiàn)切換頁(yè)面過(guò)渡動(dòng)畫(huà)效果
- jquery結(jié)合html實(shí)現(xiàn)中英文頁(yè)面切換
- JavaScript/jQuery實(shí)現(xiàn)切換頁(yè)面效果
相關(guān)文章
Javascript函數(shù)式編程簡(jiǎn)單介紹
什么是函數(shù)式編程?根據(jù)百度百科的描述,“函數(shù)式編程是種編程典范,它將電腦運(yùn)算視為函數(shù)的計(jì)算。函數(shù)編程語(yǔ)言最重要的基礎(chǔ)是 λ 演算(lambda calculus)。而且λ演算的函數(shù)可以接受函數(shù)當(dāng)作輸入(參數(shù))和輸出(返回值)?!?/div> 2015-10-10
基于javascript實(shí)現(xiàn)泡泡大冒險(xiǎn)網(wǎng)頁(yè)版小游戲
這篇文章主要介紹了基于javascript實(shí)現(xiàn)泡泡大冒險(xiǎn)網(wǎng)頁(yè)版小游戲,很有趣的游戲,可以練習(xí)打字速度,感興趣的小伙伴們可以參考一下2016-03-03
JavaScript設(shè)計(jì)模式之原型模式詳情
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之原型模式詳情,原型的這種設(shè)計(jì)模式,是一種比較簡(jiǎn)單的設(shè)計(jì)模式,由于初始化都做一些重復(fù)性的東西,造成的性能消2022-06-06
JS事件處理機(jī)制及事件代理(事件委托)實(shí)例詳解
這篇文章主要介紹了JS事件處理機(jī)制及事件代理,結(jié)合實(shí)例形式詳細(xì)分析了JS時(shí)間處理機(jī)制與事件代理功能、用法及相關(guān)使用技巧,需要的朋友可以參考下2023-06-06
Echarts圖表移動(dòng)端橫屏進(jìn)入退出的實(shí)現(xiàn)
本文主要介紹了Echarts圖表移動(dòng)端橫屏進(jìn)入退出的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
鼠標(biāo)經(jīng)過(guò)tr時(shí),改變tr當(dāng)前背景顏色
本篇文章主要介紹了鼠標(biāo)經(jīng)過(guò)tr時(shí),改變tr當(dāng)前背景顏色的示例代碼,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01
JavaScript中發(fā)布/訂閱模式的簡(jiǎn)單實(shí)例
這篇文章主要介紹了JavaScript中發(fā)布/訂閱模式的簡(jiǎn)單實(shí)例,本文給出了一個(gè)簡(jiǎn)單易懂的實(shí)現(xiàn)代碼,比較容易理解,需要的朋友可以參考下2014-11-11最新評(píng)論

