zoukankan      html  css  js  c++  java
  • 极简单JS轮播图特效

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>轮播图</title>
      6     <style>
      7         * {
      8             margin: 0;
      9             padding: 0;
     10         }
     11 
     12         .banner {
     13             width: 100%;
     14             height: 450px;
     15             background: #999;
     16             position: relative;
     17         }
     18 
     19         .cont {
     20             width: 100%;
     21             height: 100%;
     22             line-height: 450px;
     23             text-align: center;
     24             display: none;
     25             color: #f00;
     26         }
     27 
     28         .tip {
     29             width: 120px;
     30             bottom: 50px;
     31             left: 50%;
     32             margin-left: -60px;
     33             position: absolute;
     34         }
     35 
     36         .tip ul {
     37             width: 120px;
     38             margin: 0 auto;
     39             text-align: center;
     40         }
     41 
     42         .tip ul li {
     43             margin: 0;
     44             width: 20px;
     45             height: 20px;
     46             text-align: center;
     47             line-height: 20px;
     48             background: #ccc;
     49             margin: 0 5px;
     50             list-style: none;
     51             display: inline-block;
     52         }
     53 
     54         .active {
     55             color: #fff;
     56             background: #f00 !important;
     57         }
     58 
     59         .pre, .next {
     60             position: absolute;
     61             top: 50%;
     62             margin-top: -50px;
     63             width: 40px;
     64             height: 80px;
     65             line-height: 80px;
     66             text-align: center;
     67             background: #ccc;
     68         }
     69 
     70         .pre {
     71             left: 0;
     72         }
     73 
     74         .next {
     75             right: 0;
     76         }
     77     </style>
     78 </head>
     79 <body>
     80 <div class="banner" id="box">
     81     <div class="main" id="main">
     82         <div class="cont" style="display: block">第一张</div>
     83         <div class="cont" style="background:#666">第二张</div>
     84         <div class="cont" style="background:#171717">第三张</div>
     85         <div class="cont" style="background:#424242">第四张</div>
     86     </div>
     87     <div class="tip" id="tip">
     88         <ul>
     89             <li class="active">1</li>
     90             <li>2</li>
     91             <li>3</li>
     92             <li>4</li>
     93         </ul>
     94     </div>
     95     <div class="slide">
     96         <div class="pre" id="pre"></div>
     97         <div class="next" id="next"></div>
     98     </div>
     99 </div>
    100 </body>
    101 <script>
    102     window.onload = function () {
    103         var oCont = document.getElementsByClassName('cont');
    104         var oLi = document.getElementsByTagName('li');
    105         var oPre = document.getElementById('pre');
    106         var oNext = document.getElementById('next');
    107 
    108         var index = 0;
    109         var timer = '';
    110 
    111         //左边切换
    112         oPre.onclick = function () {
    113             index--;
    114             if (index == '-1') {
    115                 index = oCont.length - 1;
    116             }
    117             ;
    118 
    119             for (var i = 0; i < oCont.length; i++) {
    120                 oLi[i].className = '';
    121                 oCont[i].style.display = 'none'
    122             }
    123             oLi[index].className = 'active';
    124             oCont[index].style.display = 'block';
    125         };
    126 
    127         //右边切换
    128         oNext.onclick = function () {
    129 
    130             index++;
    131             if (index == oCont.length) {
    132                 index = 0;
    133             }
    134             for (var i = 0; i < oCont.length; i++) {
    135                 oLi[i].className = '';
    136                 oCont[i].style.display = 'none'
    137             }
    138             oLi[index].className = 'active';
    139             oCont[index].style.display = 'block';
    140         };
    141 
    142 
    143         //点击数字切换内容
    144         for (var i = 0; i < oLi.length; i++) {
    145             oLi[i].index = i;
    146             oLi[i].onclick = function () {
    147                 for (var i = 0; i < oLi.length; i++) {
    148                     oLi[i].className = '';
    149                     oCont[i].style.display = 'none';
    150                 }
    151                 for (var i = 0; i <= this.index; i++) {
    152                     this.className = 'active';
    153                     oCont[this.index].style.display = 'block';
    154                     index = i;
    155                 }
    156             }
    157         }
    158 
    159 
    160         timer = setInterval(move, 1500);
    161 
    162         box.onmouseout = function () {
    163             clearInterval(timer);
    164             timer = setInterval(move, 1500);
    165         };
    166 
    167         box.onmouseover = function () {
    168             clearInterval(timer);
    169         };
    170 
    171         function move() {
    172             index++;
    173             if (index == oCont.length) {
    174                 index = 0;
    175             }
    176             for (var i = 0; i < oCont.length; i++) {
    177                 oLi[i].className = '';
    178                 oCont[i].style.display = 'none'
    179             }
    180             oLi[index].className = 'active';
    181             oCont[index].style.display = 'block';
    182         }
    183 
    184     };
    185 </script>
    186 
    187 </html>

    轮播图的大致原理就是,通过JS来判断当前应该显示图片数组中的哪一张图片。

    将所需要展示的图片(.cont)通过JS获取为数组,并判断用户当前点击的是分页器的哪一页,或点击的是切页按钮。

    然后为当前应活跃的图片添加display:block属性,并将其他图片隐藏(display:none)。

    给分页器的当前页数添加class="active"属性来标识当前活跃页码。

    并最终添加循环器(setInterval)来使页面进行轮播,最终完成轮播图的效果。

    注:可若添加轮播特效。

  • 相关阅读:
    P1843 奶牛晒衣服
    P1577 切绳子
    P2777 [AHOI2016初中组]自行车比赛——洛谷
    选择我自己的算法 2012年CCC加拿大高中生信息学奥赛
    如何修改博客园里个人首页背景(form:cot 大犇)
    洛谷P1105 平台
    SPFA模板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板板
    洛谷p2504 HAOI2006 聪明的猴子
    舒适的路线
    超级质数
  • 原文地址:https://www.cnblogs.com/moxiaoshang/p/11112019.html
Copyright © 2011-2022 走看看