zoukankan      html  css  js  c++  java
  • 慕课网课程学习--焦点轮播图

    技能点

    DOM操作、定时器、事件运用、JS动画、函数递归、无线滚动


    布局实现

    外层容器(包含以下几部分) :相对定位

    1、图片 : 绝对定位、float实现图片无缝

    2、小圆点 :绝对定位、圆角、float实现文字不重合?

    3、左右翻页箭头:绝对定位、rgba背景,a:hover

    代码:

     1 <!DOCTYPE HTML>
     2 <html>
     3 
     4 <head>
     5     <style type="text/css">
     6     #carousel {
     7         position: relative;
     8         width: 600px;
     9         height: 400px;
    10         overflow: hidden;
    11     }
    12     #imgs {
    13         position: absolute;
    14         height: 400px;
    15         width: 4200px;
    16         z-index: 1;
    17         overflow: hidden;
    18     }
    19         #imgs img {
    20         float: left;
    21     }
    22     
    23     #prev {
    24         left: 20px;
    25     }
    26     #next {
    27         right: 20px;
    28     }
    29     .arrow {
    30         cursor: pointer;
    31         line-height: 39px;
    32         text-align: center;
    33         font-size: 36px;
    34         font-weight: bold;
    35         width: 40px;
    36         height: 40px;
    37         background-color: rgba(0, 0, 0, .3);
    38         color: #FFF;
    39         text-decoration: none;
    40         z-index: 2;
    41         position: absolute;
    42         top: 200px;
    43     }
    44     .arrow:hover {
    45         background-color: rgba(0, 0, 0, .7);
    46     }
    47     #bnts {
    48         position: absolute;
    49         bottom: 20px;
    50         left: 250px;
    51         z-index: 3;
    52     }
    53     #bnts span {
    54         cursor: pointer;
    55         float: left;
    56         border: 1px solid #FFF;
    57         width: 10px;
    58         height: 10px;
    59         border-radius: 50%;
    60         background: #333;
    61         margin-right: 5px;
    62     }
    63     #bnts .on {
    64         background-color: #FFF;
    65     }
    66     </style>
    67 
    68 </head>
    69 
    70 <body>
    71     <div id="carousel">
    72         <div id="imgs" style="left:0px">
    73             <img src="img/1.jpg" alt="1" />
    74             <img src="img/2.jpg" alt="2" />
    75             <img src="img/3.jpg" alt="3" />
    76             <img src="img/4.jpg" alt="4" />
    77             <img src="img/5.jpg" alt="5" />
    78         </div>
    79         <div id="bnts">
    80             <span class="on"></span>
    81             <span></span>
    82             <span></span>
    83             <span></span>
    84             <span></span>
    85         </div>
    86         <a href="#" id="prev" class="arrow">&lt;</a>
    87         <a href="#" id="next" class="arrow">&gt;</a>
    88     </div>
    89 </body>
    90 
    91 </html>
    View Code

    JS

    所有JS在window.onload之后执行

    点击按钮实现左右更新图片:设置所有图片所在的div的left增加或者减少,获取元素的style属性遇到的问题(内联CSS样式才可以直接获取)。

    点击小圆点随意跳转图片:通过循环绑定onclick事件(需要通过闭包处理,不可直接绑定)。推荐方法:事件委托

    小圆点HTML

    1 <div id="bnts">
    2     <span class="on"></span>
    3     <span index="1"></span>
    4     <span index="2"></span>
    5     <span index="3"></span>
    6     <span index="4"></span>
    7 </div>
    View Code

     JS  var bnt = document.getElementById("bnts"); 

    循环绑定事件(不推荐)

    1 for(var i = 0; i<bnts.length; i++) {
    2     bnts[i].onclick = function(i) {
    3         return function() {
    4             showPicture(i);
    5         };
    6     }(i);
    7 }
    View Code

     事件委托绑定事件(推荐)

    1 bnt.onclick = function(e) {
    2     e = e || window.event;           //event事件兼容性处理
    3     var targetNode = e.target || e.srcElement;      //event事件兼容性处理
    4     var index = targetNode.getAttribute("index");
    5     showPicture(index);
    6 }
    View Code

     优化--点击相同小圆点不重复执行代码      if(bnts[index].className == "on"){ return;} 


     实现图片过渡效果

    实现图片无缝切换:新增第一张图片、最后一张图片,切换完毕后再替换整张图片。

    图片在切换过程中,注意要是按钮点击无效,否则会影响性能。

    点击按钮切换图片:setTimeOut(),clearTimeOut()实现图片过渡

    自动轮放图片:setInterval(), clearInterval()

  • 相关阅读:
    ShareX 图虫
    电网规划大数据一体化平台
    写给工程师的 Ubuntu 20.04 最佳配置指南
    UML 建模 各种图总结
    linux 牛人推荐书籍
    客服工单系统 设计
    《走出软件作坊》 吕建伟 coder CIO ERP OA 架构 管理 趋势 用友
    Deploy a Kubernetes Desktop Cluster with Ubuntu Multipass
    那些做了一半的项目 | 四火的唠叨
    org.apache.http.client.HttpResponseException: Request Entity Too Large
  • 原文地址:https://www.cnblogs.com/hemi/p/4008421.html
Copyright © 2011-2022 走看看