zoukankan      html  css  js  c++  java
  • JavaScript 图片轮播

      

    一、布局

     <style>
            .container{
                position: relative;
                 500px;
                height: 180px;
                margin:100px   auto;
            }
            .container ul{
                position: absolute;
                bottom: 0;
                 100%;
                height: 30px;
                background: rgba(0,0,0,0.4);
            }
            .container  li{
                10px;
                height: 10px;
                margin: 9px 18px;
                border-radius: 50%;
                line-height:10px;
                margin-right: 10px;
                border: 1px solid red;
                background: rgba(255,255,255,1);
                float: left;
            }
    
            .container  li.active{
    
                border: 1px solid red;
                background: rgba(255,0,0,1);
    
            }
            .container  .arrow{
                position: absolute;
                top: 50%;
                margin-top: -25px;
                 30px;
                height: 50px;
                line-height: 50px;
                font-size:30px;
                background: rgba(255,255,255,0.4);
            }
            .container  #leftArrow{
                left: 0;
            }
    
            .container  #rightArrow{
                right: 0;
            }
        </style>
    

     

     
    <body>
      <div class="container">
           <div class="imgBox">
               <img src="imgPlay/dd_scroll_5.jpg" alt="图片1"/>
           </div>
    
          <ul>
              <li> 1</li>
              <li> 2</li>
              <li> 3</li>
              <li> 4 </li>
              <li> 5 </li>
              <li> 6</li>
          </ul>
          <div class="arrow" id="leftArrow"> < </div>
          <div  class="arrow"  id="rightArrow"> > </div>
      </div>
    
    </body>
    

      

    二、JavaScript实现

    
    
    <script>
    /*    JavaScript 图片轮播: 1定时器设置自动循环播放 2 鼠标停在下方小圆点(Li标签)上显示对应下标的图片 3按钮点击显示对应上一张下一张图片
    1.定时器设置自动循环播放:定时改变图片的src属性和对应的小圆点(Li标签)高亮突出样式
    2.鼠标停在下方小圆点(Li标签)上显示对应下标的图片,一直悬停图片则不动(注意:鼠标悬停时定时器停止播放图片)
    鼠标移出的时候开始定时器循环播放图片(注意:从悬停的图片的下一张开始播放,而不是原来定时器播放图片的顺序)
    3.按钮点击显示当前图片对应上一张下一张图片*/

    var srcArr= [ "imgPlay/dd_scroll_1.jpg","imgPlay/dd_scroll_2.jpg" , "imgPlay/dd_scroll_3.jpg","imgPlay/dd_scroll_4.jpg" , "imgPlay/dd_scroll_5.jpg","imgPlay/dd_scroll_6.jpg" ]; var img = document.getElementsByClassName("container")[0].getElementsByTagName("img")[0]; var arrLi = document.getElementsByClassName("container")[0].getElementsByTagName("li"); var arrArrow = document.getElementsByClassName("container")[0].getElementsByClassName("arrow"); //Li自定义下标 for( var i = 0 ;i<arrLi.length ;i++) { arrLi[i].index = i; } //初始化 var lastActiveLi =null; var activeIndex = 0; img.src = srcArr[ activeIndex ] ; arrLi[ activeIndex].className="active"; lastActiveLi = arrLi[ activeIndex]; img.timer = null; //滚动1:开启定时器图片滚动 img.timer =window.setInterval( function(){ lastActiveLi.className=""; activeIndex= (++activeIndex) % srcArr.length ; img.src = srcArr[ activeIndex ] ; arrLi[ activeIndex].className="active"; lastActiveLi = arrLi[ activeIndex]; } ,1000); //滚动2:鼠标在li上移入移出 for( var i = 0 ;i<arrLi.length ;i++){ arrLi[i].onmouseover = function(){ lastActiveLi.className=""; activeIndex=this.index ; img.src = srcArr[ activeIndex ] ; arrLi[ activeIndex].className="active"; lastActiveLi = arrLi[ activeIndex]; window.clearInterval( img.timer ); }; arrLi[i].onmouseout = function(){ img.timer =window.setInterval( function(){ lastActiveLi.className=""; activeIndex= (++activeIndex) % srcArr.length ; img.src = srcArr[ activeIndex ] ; arrLi[ activeIndex].className="active"; lastActiveLi = arrLi[ activeIndex]; } ,1000); }; } //滚动3:点击左右箭头 上一张 下一张图片 arrArrow[0].onclick = function(){ lastActiveLi.className=""; activeIndex= (--activeIndex +srcArr.length) % srcArr.length ; img.src = srcArr[ activeIndex ] ; arrLi[ activeIndex].className="active"; lastActiveLi = arrLi[ activeIndex]; } arrArrow[1].onclick = function(){ lastActiveLi.className=""; activeIndex= (++activeIndex ) % srcArr.length ; img.src = srcArr[ activeIndex ] ; arrLi[ activeIndex].className="active"; lastActiveLi = arrLi[ activeIndex]; } </script>

      

    三、JavaScript函数封装 

        var srcArr= [ "imgPlay/dd_scroll_1.jpg","imgPlay/dd_scroll_2.jpg" ,
            "imgPlay/dd_scroll_3.jpg","imgPlay/dd_scroll_4.jpg" ,
            "imgPlay/dd_scroll_5.jpg","imgPlay/dd_scroll_6.jpg"  ];
    
        var img  = document.getElementsByClassName("container")[0].getElementsByTagName("img")[0];
        var arrLi = document.getElementsByClassName("container")[0].getElementsByTagName("li");
        var arrArrow = document.getElementsByClassName("container")[0].getElementsByClassName("arrow");
    
        //自定义函数
        function playImg( activeIndex ){
            lastActiveLi.className="";
            img.src  = srcArr[ activeIndex   ]  ;
            arrLi[ activeIndex].className="active";
            lastActiveLi = arrLi[ activeIndex];
        }
    
        //Li自定义下标
        for( var i = 0 ;i<arrLi.length ;i++) {
            arrLi[i].index = i;
        }
        //初始化
        var lastActiveLi  =null;
        var activeIndex = 0;
        img.src  = srcArr[ activeIndex  ]  ;
        arrLi[ activeIndex].className="active";
        lastActiveLi  = arrLi[ activeIndex];
        img.timer = null;
    
    
        //滚动1:开启定时器图片滚动
        img.timer =window.setInterval(  function(){
            activeIndex= (++activeIndex) % srcArr.length ;
            playImg( activeIndex );
        } ,1000);
    
    
    
    
        //滚动2:鼠标在li上移入移出
        for( var i = 0 ;i<arrLi.length ;i++){
            arrLi[i].onmouseover = function(){
                activeIndex=this.index  ;
                playImg( activeIndex );
                window.clearInterval( img.timer  );
            };
            arrLi[i].onmouseout = function(){
                img.timer =window.setInterval(  function(){
                    activeIndex= (++activeIndex) % srcArr.length ;
                    playImg( activeIndex );
                } ,1000);
            };
        }
    
        //滚动3:点击左右箭头 上一张 下一张图片
        arrArrow[0].onclick = function(){
            activeIndex= (--activeIndex +srcArr.length) % srcArr.length ;
            playImg( activeIndex );
    
        }
    
        arrArrow[1].onclick = function(){
            activeIndex= (++activeIndex ) % srcArr.length ;
            playImg( activeIndex );
        }
    
     
    

      

      

  • 相关阅读:
    【iOS】js调用oc的一个注意点
    【iOS】程序内跳转到支付宝转账(非SDK实现支付)及相关监听
    GCD定时器不走set_event_handler和variable is not assignable missing block
    苹果审核上传附件上传不上去
    上传本地代码到gitHub过程详解
    iOS---学习研究大牛Git高星项目YYCategories(四)
    iOS 关键字const/static/extern、UIKIT_EXTERN区别和用法
    iOS---学习研究大牛Git高星项目YYCategories(三)
    iOS---学习研究大牛Git高星项目YYCategories(二)
    iOS---学习研究大牛Git高星项目YYCategories(一)
  • 原文地址:https://www.cnblogs.com/July-/p/5777485.html
Copyright © 2011-2022 走看看