• 极简单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)来使页面进行轮播,最终完成轮播图的效果。

    注:可若添加轮播特效。

  • 相关阅读:
    为什么说性别字段不适合做索引?
    过程数据的记录(事务问题)
    两个系统操作同一条表记录涉及的事务的坑(依护系统)
    mybatis插件自动生成代码报错。
    ORACLE使用plsql和其他工具进行表结构和数据迁移
    ORACLE获取建表SQL
    学习英语的技巧
    Oracle的用户管理
    Jmeter做压力测试
    强烈推荐(原创亲测)!!!Fiddler抓取https设置详解(图文)
  • 原文地址:https://www.cnblogs.com/moxiaoshang/p/11112019.html
Copyright © 2020-2023  润新知