js更改圖片透明度實現輪播圖輪播效果


  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <style>
  7         html body {
  8             margin: 0;
  9             padding: 0;
 10         }
 11         li{
 12             list-style: none;
 13         }
 14         .div1{
 15             width: 500px;
 16             height: 400px;
 17             margin: 50px auto;
 18             position: relative;
 19             border: 1px solid black;
 20 
 21         }
 22         .div1 a img {
 23             width: 400px;
 24             position: absolute;
 25             margin: 118px 50px;
 26         }
 27         .div1 ul{
 28             position: absolute;
 29             bottom: 110px;
 30             right:53px;
 31             z-index: 10;
 32         }
 33         .div1 ul li {
 34             width: 15px;
 35             height: 15px;
 36             line-height: 15px;
 37             border-radius: 50%;
 38             float: left;
 39             background-color: white;
 40             margin-right: 5px;
 41             cursor: pointer;
 42             text-align: center;
 43         }
 44     </style>
 45 </head>
 46 <body>
 47 <div class="div1" id="div1">
 48     <a href="javascript:void(0)"><img src="img/1.png"></a>
 49     <a href="javascript:void(0)"><img src="img/2.png"></a>
 50     <a href="javascript:void(0)"><img src="img/3.png"></a>
 51     <a href="javascript:void(0)"><img src="img/44.jpg"></a>
 52     <a href="javascript:void(0)"><img src="img/55.jpg"></a>
 53     <ul>
 54         <li>1</li>
 55         <li>2</li>
 56         <li>3</li>
 57         <li>4</li>
 58         <li>5</li>
 59     </ul>
 60 </div>
 61 <script>
 62     var div1 = document.getElementById("div1");//整個區域
 63     var a1 = div1.getElementsByTagName("a");//a標簽 圖片
 64     var li1 = div1.getElementsByTagName("li");//右下角按鈕
 65     var ab = 0; //ab的值控制觸摸按鈕后的下一張圖
 66     //遍歷所有圖和按鈕,頁面加載完畢顯示第一張圖和第一個按鈕
 67     window.onload = function () {
 68         for (var i=0;i<a1.length;i++){
 69             if (i!=0){
 70             a1[i].style.opacity = 0;
 71             }else {
 72                 li1[i].style.backgroundColor = "green";
 73             }
 74         }
 75     };
 76     //運行函數bb();
 77     function bb() {
 78      for (var j=0;j<li1.length;j++) {
 79          //遍歷所有的按鈕,所有按鈕都給綁定一個鼠標移上去的onmouseover事件
 80          li1[j].onmouseover = function () {
 81              //變量index就是當前觸摸的按鈕的文本-1,此前特意設置按鈕文本為數字
 82              var index = this.innerHTML - 1;
 83              ab = index; //ab后面用return返回
 84              //聲明變量b
 85              for (var b = 0; b < li1.length; b++) {
 86                  //當b就是被觸摸到的按鈕的索引號時,設置第b張圖片不透明度為100,漸變透明度效果1s,第b個按鈕背景色變成green
 87                  if (b == index) {
 88                      a1[b].style.opacity = 100;
 89                      a1[b].style.transition = "opacity 1s";
 90                      li1[b].style.backgroundColor = "green";
 91                  } else { //當b不是被觸摸到的按鈕的索引號時,就變透明,按鈕顏色白色.
 92                      a1[b].style.opacity = 0;
 93                      li1[b].style.backgroundColor = "white";
 94                  }
 95              }
 96              return ab; //返回ab,貌似運用到了閉包?不太了解.
 97          }
 98 
 99      }
100       setInterval(function ac() { //設置2000毫秒重復運行
101                 ab = ab>li1.length-2?0:++ab; //5張圖,當觸摸到的按鈕索引號大於3時(比如4),那么ab=0(下一張圖為第0張),否則++ab;
102          //循環遍歷下一張圖的效果.
103                 for (var b = 0; b < li1.length; b++) {
104                     if (b == ab) {
105                         a1[b].style.opacity = 100;
106                         a1[b].style.transition = "opacity 1s";
107                         li1[b].style.backgroundColor = "green";
108                     } else {
109                         a1[b].style.opacity = 0;
110                         li1[b].style.backgroundColor = "white";
111                     }
112                 }
113             },2000);
114     }
115     bb(); //運行bb()
116 </script>
117 </body>
118 </html>

貌似用到了閉包?菜鳥新手不是很理解.

參考:阮一峰的網絡日志

http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html

 

 

 


免責聲明!

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



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