国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

完美實現js焦點輪播效果(二)(圖片可滾動)

2019-11-19 17:16:27
字體:
來源:轉載
供稿:網友

本文在前一篇js焦點輪播效果的基礎上,使用函數遞歸實現圖片滑動切換,采用輔助圖片實現圖片無限滾動等技巧,具體內容如下

假如前后不加一張圖片的話,圖片順序為[1,2,3,4,5],當你點到第 5 張圖時,再點“下一張”(就是要回到第 1 張圖那里),這時候,你想象下那個畫面,會一瞬間“刷刷刷”地閃過中間那幾張圖片才能到第 1 張圖那里,這樣,太難看了吧。

為了解決這個問題,所以要在第 5 張那里加多一張 1 圖,圖片順序為 [1,2,3,4,5,1]。當你在第 5 張圖點下一張時,圖片滾動順序是這樣的:5 ----> (1) ----> 1,(注:中間的那個 1 是指后面多加的 1 圖),一旦到了那個“多加的 1 圖”,輪播就會瞬間回到 前面的 1 圖那里。

因為都是“1 圖”,所以視覺上不會有那個一次“刷刷刷”閃過好幾張圖片的效果。

效果如圖:

實現代碼:

<!DOCTYPE html><html><head lang="en">  <meta charset="UTF-8">  <title></title>  <style type="text/css">    *{      margin: 0;      padding: 0;      list-style: none;      text-decoration: none;    }    .wrap{      width: 490px;      height: 170px;      margin: 100px auto;      border: 1px solid #000000;      position: relative;      overflow: hidden;    }    #pic{      width: 3430px;      position: absolute;    }    #pic li{      float: left;      height: 170px;    }    #list{      position: absolute;      bottom: 10px;      left:150px ;    }    #list li{      float: left;      width: 15px;      height: 15px;      background: #fff;      margin: 0 10px;      border-radius: 50%;      cursor: pointer;    }    #list .on{      background: #e27a00;    }    .Prev{      top: 30px;      left: 0;    }    .Next{      top: 30px;      right: 0;    }    .Prev,.Next{      position: absolute;      font-size: 80px;      font-weight: bold;      color:#fff ;      -webkit-transition: all 0.35s ease-in-out    }    .Next:hover,    .Prev:hover{      background: #ccc;      background: rgba(204, 204, 204, 0.4);    }  </style>  <script type="text/javascript">    window.onload=function(){      var wrap=document.getElementById('wrap');      var pic=document.getElementById('pic');      var Li=document.getElementById('list').getElementsByTagName('li');      var prev=document.getElementById('Prev');      var next=document.getElementById('Next');      var animated=false;      var index=0;      var timer=null;      next.onclick=function(){        if(animated){//如果圖片正在滾動時要返回,否則index會變化          return;        }        else{          index++;          if(index>=Li.length){            index=0;          }        }        showlist();        if(animated == false){//if(!animated)          animate(-490);        }      }      prev.onclick=function(){        if(animated){          return;        }        else{          index--;          if(index<=0){            index=Li.length-1;          }        }        showlist();        if(!animated){//判斷其是否滾動完          animate(490);        }      }      for(var i=0;i<Li.length;i++){        Li[i].num=i;        Li[i].onclick=function(){          if(this.className=="on"){            return;          }          var offset = -490*(this.num-index);          if(!animated){            animate(offset);          }          index=this.num;          showlist();        }      }      //圖片變換      function animate(offset){        animated=true;        var newLeft=parseInt(pic.style.left) + offset;        var time=300//位移總時間        var interval=10;//位移間隔時間        var speed=offset/(time/interval);//每次位移量        function go(){          if((speed < 0 && parseInt(pic.style.left) > newLeft )|| (speed > 0 && parseInt(pic.style.left) < newLeft)){            pic.style.left = parseInt(pic.style.left) + speed + 'px';            setTimeout(go,interval);          }else{            animated=false;            pic.style.left= newLeft + 'px';            if(newLeft > -490){              pic.style.left = -2450 + 'px';            }            if(newLeft < -2450){              pic.style.left = -490 + 'px';            }          }        }        go();      }      //圓點變換      function showlist(){        for(var i=0;i<Li.length;i++){          Li[i].className="";        }        Li[index].className="on";      }      //自動播放      function play(){        timer=setInterval(function(){          next.onclick();        },2000);      }      function stop(){        clearInterval(timer);      }      wrap.onmouseover=stop;      wrap.onmouseout=play;      play();    }  </script></head><body><div class="wrap" id="wrap">  <ul id="pic" style="left: -490px;">    <li><a href="#"><img src="/54111d7d00018ba604900170.jpg" alt="5"/></a></li>    <li><a href="#"><img src="/54111cd9000174cd04900170.jpg" alt="1"/></a></li>    <li><a href="#"><img src="/54111dac000118af04900170.jpg" alt="2"/></a></li>    <li><a href="#"><img src="/54111d9c0001998204900170.jpg" alt="3"/></a></li>    <li><a href="#"><img src="/54111d8a0001f41704900170.jpg" alt="4"/></a></li>    <li><a href="#"><img src="/54111d7d00018ba604900170.jpg" alt="5"/></a></li>    <li><a href="#"><img src="/54111cd9000174cd04900170.jpg" alt="1"/></a></li>  </ul>  <ul id="list">    <li class="on"></li>    <li></li>    <li></li>    <li></li>    <li></li>  </ul>  <a href="javascript:;" class="Prev" id="Prev"><</a>  <a href="javascript:;" class="Next" id="Next">></a></div></body></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊川县| 岐山县| 潜山县| 桐乡市| 会昌县| 亳州市| 聂拉木县| 四平市| 汨罗市| 乌兰浩特市| 临湘市| 白朗县| 门源| 广州市| 广南县| 改则县| 马龙县| 西峡县| 西丰县| 鹤岗市| 锦屏县| 乐平市| 台南县| 崇阳县| 固原市| 义乌市| 阿勒泰市| 永定县| 治县。| 武胜县| 玉屏| 游戏| 安康市| 峨眉山市| 胶南市| 临潭县| 宜城市| 宕昌县| 句容市| 电白县| 绥江县|