本文實例介紹了js實現圖片輪播相冊,具有過渡漸變效果,分享給大家供大家參考,具體內容如下
思路很簡單,用2個屬性保存當前圖片和上一張圖片,用2個定時器分別控制透明度和當前過渡的圖片。
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <style> #cnt{width:100%;height:80%;} .ctrl{text-align:center;border:1px solid gray;font-size:12px;cursor:pointer;} </style> <script defer='defer'> <!--   var curOpac = 0;   var filterTimer;   var isIE = /internet explorer/i.test(window.navigator.appName);      function MyScroll(cnt, control){     this.data = []; // 存放圖片路徑     this.interval = 3000; // 過渡一次的間隔時間(過渡時間+圖片顯示時間)     this.timer; // 定時器:控制當前顯示的圖片     this.container = cnt;     this.curFrame = 0;     this.oldFrame = 0;     this.controls = control; // 按鈕集合     Global = this;     // 獲取對象的指針      this.run = function(){       this.timer = window.setInterval("Global.showFrame()", this.interval);     }          // 按鈕的處理程序     this.go = function(i){       curOpac = 0; // 透明度歸0       this.curFrame = i; // 當前要過渡的圖片       this.stop(); // 清空計時器       this.showFrame(); // 當前圖片過渡       this.run(); // 循環播放     }          this.stop = function(){       window.clearInterval(this.timer);       window.clearInterval(filterTimer);     }      this.showFrame = function(){       // 設置當前按鈕樣式       this.controls[this.oldFrame].style.backgroundColor = "white";       this.controls[this.curFrame].style.backgroundColor = "gray";        if(isIE) this.container.style.filter = "alpha(opacity=0)";       else this.container.style.cssText = "-moz-opacity:0";        this.container.innerHTML = this.data[this.curFrame];       filterTimer = window.setInterval("blend()", 100);              this.oldFrame = this.curFrame;       this.curFrame ++;       if(this.curFrame == this.data.length){         this.curFrame = 0;       }           }   }    // 增加透明度   function blend(){     curOpac+=10;     if(isIE) Global.container.style.filter='alpha(opacity=' + curOpac + ')';     else Global.container.style.cssText = "-moz-opacity:" + curOpac/100.0;      if(curOpac == 100){       curOpac = 0;       window.clearInterval(filterTimer);     }   }   //開始      function startIt(){     var imgArr = [];     // 創建4個圖片對象保存圖片路徑     for(var i=0;i<4;i++){       imgArr[i] = new Image();       imgArr[i].src = "images/banner" + (i + 1) + ".jpg";     }          var controlArr = $("mainTb").getElementsByTagName("span");     for(var i=0;i<controlArr.length;i++){       controlArr[i].tag = i;       controlArr[i].onclick = function(){         myScroll.go(this.tag);       }     }      var myScroll = new MyScroll($("cnt"), controlArr);     myScroll.data.push("<img src='" + imgArr[0].src + "'>");     myScroll.data.push("<img src='" + imgArr[1].src + "'>");     myScroll.data.push("<img src='" + imgArr[2].src + "'>");     myScroll.data.push("<img src='" + imgArr[3].src + "'>");          myScroll.go(0);   }      window.onload = startIt;    function $(id){ return document.getElementById(id);} //--> </script> <BODY> <table width="300" height="100" id="mainTb">   <tr>   <th rowspan="4"><div id="cnt"> </div></td>   <td width="15"><span class="ctrl"> 1 </span></td>   </tr>   <tr>   <td><span class="ctrl"> 2 </span></td>   </tr>   <tr>   <td><span class="ctrl"> 3 </span></td>   </tr>   <tr>   <td><span class="ctrl"> 4 </span></td>   </tr> </table> </BODY> </HTML> 以上就是本文的全部內容,希望對大家學習javascript程序設計有所幫助。
新聞熱點
疑難解答