zoukankan      html  css  js  c++  java
  • JS实战——轮播图

       轮播图在页面中很常见,十分的重要。今天特此练习下。代码如下:

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4   <meta charset="UTF-8" />
      5   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      6   <meta http-equiv="X-UA-Compatible" content="ie=edge" />
      7   <title>轮播图</title>
      8   <style>
      9     * {
     10       padding: 0;
     11       margin: 0;
     12       list-style: none;
     13     }
     14 
     15     #wrapper {
     16        100%;
     17       height: 600px;
     18       position: relative;
     19     }
     20 
     21     #slide {
     22        100%;
     23       height: 600px;
     24     }
     25 
     26     #slide li {
     27        100%;
     28       height: 600px;
     29       opacity: 0;
     30       transition: all .5s;
     31       position: absolute;
     32     }
     33 
     34     #slide .active {
     35       z-index: 10;
     36       opacity: 1;
     37     }
     38 
     39     #slide img {
     40        100%;
     41       height: 600px;
     42     }
     43 
     44     button {
     45        50px;
     46       height: 100px;
     47       font-size: 30px;
     48       position: absolute;
     49       top: 250px;
     50       z-index: 10;
     51     }
     52 
     53     #right-btn {
     54       right: 0;
     55     }
     56 
     57     .point li {
     58        14px;
     59       height: 14px;
     60       background-color: rgba(0, 0, 0, 0.4);
     61       border-radius: 50%;
     62       float: left;
     63       margin-right: 12px;
     64       border: 1px solid rgba(0, 0, 0, 0.4);
     65     }
     66 
     67     .point li.active {
     68       background-color: rgba(255, 255, 255, 0.4);
     69     }
     70 
     71     .point {
     72       position: absolute;
     73       right: 0;
     74       bottom: 2%;
     75       z-index: 100;
     76       margin-right: 20px;
     77     }
     78   </style>
     79 </head>
     80 
     81 <body>
     82   <div id="wrapper">
     83     <ul id="slide">
     84       <li class="active"><img src="./img/1.jpeg" alt="" /></li>
     85       <li><img src="./img/2.jpeg" alt="" /></li>
     86       <li><img src="./img/3.jpeg" alt="" /></li>
     87       <li><img src="./img/4.jpeg" alt="" /></li>
     88       <li><img src="./img/5.jpeg" alt="" /></li>
     89     </ul>
     90     <button id="left-btn">
     91       < </button> <button id="right-btn">>
     92     </button>
     93     <ul class="point">
     94       <li class="active" data-index='0'></li>
     95       <li data-index='1'></li>
     96       <li data-index='2'></li>
     97       <li data-index='3'></li>
     98       <li data-index='4'></li>
     99     </ul>
    100   </div>
    101   <script>
    102     var oLi = document.getElementsByTagName('li')
    103     var oLeftBtn = document.getElementById('left-btn')
    104     var oRightBtn = document.getElementById('right-btn')
    105     var oPoint = document.getElementsByClassName('point')[0]
    106     var oPointLi = oPoint.getElementsByTagName('li')
    107     var index = 0
    108     var time = 0
    109     var goIndex = function () {
    110       clearIndex()
    111       oLi[index].className = 'active'
    112       oPointLi[index].className = 'active'
    113     }
    114 
    115     function clearIndex() {
    116       for (var i = 0; i < oLi.length; i++) {
    117         oLi[i].className = ''
    118       }
    119       for (var i = 0; i < oPointLi.length; i++) {
    120         oPointLi[i].className = ''
    121       }
    122     }
    123 
    124     oRightBtn.addEventListener('click', function () {
    125       if (index < 4) {
    126         index++
    127       } else {
    128         index = 0
    129       }
    130       goIndex()
    131     })
    132 
    133     oLeftBtn.addEventListener('click', function () {
    134       if (index === 0) {
    135         index = 4
    136       } else {
    137         index--
    138       }
    139       goIndex()
    140     })
    141 
    142     for (var i = 0; i < oPointLi.length; i++) {
    143       oPointLi[i].addEventListener('click', function () {
    144         var pointIndex = this.getAttribute('data-index')
    145         index = pointIndex
    146         goIndex()
    147         time = 0
    148       })
    149     }
    150 
    151     function autoPlay() {
    152       setInterval(function () {
    153         time++
    154         if (time === 20) {
    155           if (index < 4) {
    156             index++
    157           } else {
    158             index = 0
    159           }
    160           goIndex()
    161           time = 0
    162         }
    163       }, 100)
    164     }
    165     autoPlay()
    166   </script>
    167 </body>
    168 </html>

      功能该做的都做了,但代码还不够精简,水平有待提高。哈哈。

  • 相关阅读:
    纹理加载和异步
    地板上创建批量小方块
    创建自定义几何体(以立方体为例)
    WTForms
    angular和vue的差别
    vuejs简单介绍特点
    angularjs简单介绍和特点
    flask重要点
    redis
    DRF之认证组件源码解析
  • 原文地址:https://www.cnblogs.com/pcyu/p/11318367.html
Copyright © 2011-2022 走看看