1. 程式人生 > >javascript如何製作簡單的圖片輪播,帶有數字選擇,滑鼠懸停暫停輪播,離開時繼續輪播圖片

javascript如何製作簡單的圖片輪播,帶有數字選擇,滑鼠懸停暫停輪播,離開時繼續輪播圖片

直接上程式碼,程式碼有註釋:
要想做圖片輪播,需要知道以下知識點:
定時函式:

window物件:
window.setInterval("執行的方法名",間隔時間(毫秒)):返回值是一個用來停止計時器的ID
window.clearInterval(計時器的ID):清除定時器,無返回值

圖片輪播靠的是定時器,定時執行方法去切換圖片,切換 img標籤下的src屬性,以此來切換圖片,
滑鼠懸停時停止輪播,是依靠滑鼠懸停事件onmouseover和滑鼠移出事件onmouseout.

<!DOCTYPE html>
<html>
    <head>
<meta charset="utf-8" /> <title></title> <script type="text/javascript"> //設定全域性變數,統計播放圖片的順序 var imgIndex=1;//從第一張圖片開始輪播 var imgCount=6;//總共有6張圖片 var liObjs=document.getElementById("scroll_number").getElementsByTagName("li"); /** * 實現圖片輪播 * _args 傳入的是數字(第幾張圖片)滑鼠懸停時才會傳入引數 */
function loopShow(_args){//當滑鼠移入時,執行滑鼠移入事件,執行帶引數的方法,引數值在index.html中的loopShow()方法中的引數傳入 if(_args){//如果引數存在,代表觸發了滑鼠懸停事件,那麼需要停止計時器 imgIndex=_args; window.clearInterval(myTime);//停止定時器 } //1、圖片輪播 var imgObj=document.getElementById("dd_scroll"); //1.1、設定顯示第幾張圖片 //1.2、設定數字的背景色(顯示的是第幾張圖片)
for(var i=0;i<liObjs.length;i++){ if(i==imgIndex-1){ //圖片的名字只有一個數字的區別,所以切換圖片只需要修改圖片名字的一個數字 imgObj.setAttribute("src","images/dd_scroll_"+imgIndex+".jpg");//圖片顯示 liObjs[i].className="scroll_number_over";//數字背景 }else{ liObjs[i].className="scroll_number_out"; } /*新增移出事件,只能寫一個,寫在這裡或者onload事件裡面都一樣可以 liObjs[i].onmouseout=function(){ myTime=window.setInterval("loopShow()",1000); }*/ } //imgIndex++代表繼續顯示下一張圖片 imgIndex++; if(imgIndex>imgCount) {//如果圖片編號大於中的圖片數量,就重新賦值為1,從第一張開始輪播 imgIndex=1; } } var myTime;//全域性變數,用於記錄定時器的ID,便於在loopshow()方法中使用 window.onload=function(){ //設定定時器定時執行輪播,方法需要引數,就算不給引數也能執行. myTime=window.setInterval("loopShow()",1000); //新增移出事件,滑鼠移開數字 for(var i=0;i<liObjs.length;i++){ liObjs[i].onmouseout=function(){ myTime=window.setInterval("loopShow()",1000);//返回的myTime是一個用來停止計時器的ID } }
</script> <style type="text/css"> .scroll_number_out{ } .scroll_number_over{//設定數字的樣式,當滑鼠停在數字上時,給數字加點背景色和字型顏色. background-color:#F96; color:#FFF; } </style> </head> <body> <!--輪換顯示的橫幅廣告圖片--> <div class="scroll_top"></div> <div class="scroll_mid"> <img src="images/dd_scroll_2.jpg" alt="輪換顯示的圖片廣告" id="dd_scroll"/> <div id="scroll_number"> <ul><!--滑鼠懸停時才會觸發事件,傳入引數--> <li id="scroll_number_1" onmouseover="loopShow(1)">1</li> <li id="scroll_number_2" onmouseover="loopShow(2)">2</li> <li id="scroll_number_3" onmouseover="loopShow(3)">3</li> <li id="scroll_number_4" onmouseover="loopShow(4)">4</li> <li id="scroll_number_5" onmouseover="loopShow(5)">5</li> <li id="scroll_number_6" onmouseover="loopShow(6)">6</li> </ul> </div> </div> </body> </html>