欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實(shí)現(xiàn)無限輪播效果

 更新時間:2020年11月19日 15:25:55   作者:御劍把酒聽秋雨丶  
這篇文章主要介為大家詳細(xì)紹了JavaScript實(shí)現(xiàn)無限輪播效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)無限輪播效果的具體代碼,供大家參考,具體內(nèi)容如下

效果展示

原理

圖片說明原理

輪播順序:1–>2–>3–>4–>5–>1的副本–>2–>3–>4–>5–>1的副本–>2…一直循環(huán)

鼠標(biāo)進(jìn)入圖片時自動輪播暫停,離開后恢復(fù)

資源下載

代碼

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>無限輪播</title>
  <style>
    * {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    img {
      vertical-align: top;
    }
    #slider {
      width: 520px;
      height: 280px;
      border: 1px solid #000;
      padding: 10px;
      margin: 100px auto;
      position: relative;

    }
    #top {
      width: 100%;
      height: 100%;
      position: relative;
      overflow: hidden;
    }
    #top ul {
      width: 3120px;
      height: 100%;
      position: absolute;
      left: 0;
      top: 0;
    }
    #top ul li {
      width: 520px;
      height: 280px;
      float: left;
    }
    #slider ol {
      position: absolute;
      right: 10px;
      bottom: 10px;
    }
    #slider ol li {
      width: 20px;
      height: 20px;
      background-color: darkgrey;
      display: inline-block;
      border-radius: 50%;
      margin-right: 3px;
      cursor: pointer;
    }
    #slider ol li.current {
      background-color: orangered;
    }
  </style>
</head>
<body>
  <div id="slider">
    <div id="top">
      <ul id="ul">
        <li><img src="images/pic01.jpg" alt=""></li>
        <li><img src="images/pic02.jpg" alt=""></li>
        <li><img src="images/pic03.jpg" alt=""></li>
        <li><img src="images/pic04.jpg" alt=""></li>
        <li><img src="images/pic05.jpg" alt=""></li>
      </ul>
    </div>
    <ol id="ol">
    </ol>
  </div>
<script src="js/myFunc.js"></script>
<script>
  window.onload = function () {
    // 1.獲取需要的標(biāo)簽
    var lis = $("ul").children;

    // 6.自動輪播參數(shù)定義(圖片索引,圓點(diǎn)索引)
    var currentIndex = 0, indicatorIndex = 0;

    // 2.克隆li標(biāo)簽(將第一個li標(biāo)簽克隆一份到最后一個li標(biāo)簽后面)
    $("ul").appendChild(lis[0].cloneNode(true));

    // 3.動態(tài)創(chuàng)建右下角的圓點(diǎn)
    for(var i=0; i<lis.length-1; i++){ // 因?yàn)榭寺×艘粋€li,所以需要減1
      var li = document.createElement("li");
      $("ol").appendChild(li);
    }

    // 4.第一個圓點(diǎn)選中
    $("ol").children[0].className = "current";

    // 5.監(jiān)聽鼠標(biāo)進(jìn)入圓點(diǎn)
    var olLis = $("ol").children;
    for(var j=0; j<olLis.length; j++){
      (function (j) { // 閉包
        // 5.1 獲取單獨(dú)的li標(biāo)簽
        var li = olLis[j];

        // 5.2 鼠標(biāo)進(jìn)入
        li.onmouseover = function () {
          for(var i=0; i<olLis.length; i++){ // 排他思想
            olLis[i].className = "";
          }

          this.className = "current";

          // 5.3 輪播圖動起來
          constant($("ul"), -(520 * j), 60);

          // 6.1
          currentIndex = indicatorIndex = j;
        }
      })(j)
    }

    // 7.自動輪播
    var timer = setInterval(autoPlay, 1000);

    // 8.清除和設(shè)置定時器
    $("slider").onmouseover = function () {
      clearInterval(timer);
    };

    $("slider").onmouseout = function () {
      timer = setInterval(autoPlay, 1000);
    };

    /**
     * 自動輪播函數(shù)
     */
    function autoPlay() {
      // 7.1 ul 滾動起來
      currentIndex++;
      if(currentIndex > lis.length-1){
        $("ul").style.left = 0;
        currentIndex = 1;
      }
      constant($("ul"), -currentIndex * 520, 60);

      // 7.2 圓點(diǎn)滾動起來
      indicatorIndex++;
      if(indicatorIndex > olLis.length-1){
        indicatorIndex = 0;
      }
      for(var i=0; i<olLis.length; i++){ // 排他思想
        olLis[i].className = "";
      }

      olLis[indicatorIndex].className = "current";
    }
  }
</script>
</body>
</html>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • es6?js?匹配兩個數(shù)組對象的方法

    es6?js?匹配兩個數(shù)組對象的方法

    這篇文章主要介紹了es6?js?匹配兩個數(shù)組對象的方法,實(shí)例代碼介紹了判斷兩個數(shù)組用的value是否相等,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • js 實(shí)現(xiàn)ajax發(fā)送步驟過程詳解

    js 實(shí)現(xiàn)ajax發(fā)送步驟過程詳解

    這篇文章主要介紹了js 實(shí)現(xiàn)ajax發(fā)送過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • setTimeout與setInterval的區(qū)別淺析

    setTimeout與setInterval的區(qū)別淺析

    這篇文章主要給大家介紹了關(guān)于setTimeout與setInterval區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JS實(shí)用的帶停頓的逐行文本循環(huán)滾動效果實(shí)例

    JS實(shí)用的帶停頓的逐行文本循環(huán)滾動效果實(shí)例

    下面小編就為大家?guī)硪黄狫S實(shí)用的帶停頓的逐行文本循環(huán)滾動效果實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • JavaScript?ECMAScript?6(ES2015~ES2022)所有新特性總結(jié)

    JavaScript?ECMAScript?6(ES2015~ES2022)所有新特性總結(jié)

    這篇文章主要介紹了JavaScript?ECMAScript?6(ES2015~ES2022)所有新特性總結(jié),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • js escape,unescape解決中文亂碼問題的方法

    js escape,unescape解決中文亂碼問題的方法

    Js將字符串轉(zhuǎn)換為特定的編碼,使其能夠被任意的計算機(jī)識別和讀取
    2010-05-05
  • 使用webpack搭建vue項(xiàng)目實(shí)現(xiàn)腳手架功能

    使用webpack搭建vue項(xiàng)目實(shí)現(xiàn)腳手架功能

    這篇文章主要介紹了使用webpack搭建vue項(xiàng)目實(shí)現(xiàn)腳手架功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 利用 Chrome Dev Tools 進(jìn)行頁面性能分析的步驟說明(前端性能優(yōu)化)

    利用 Chrome Dev Tools 進(jìn)行頁面性能分析的步驟說明(前端性能優(yōu)化)

    這篇文章主要介紹了利用 Chrome Dev Tools 進(jìn)行頁面性能分析的步驟說明(前端性能優(yōu)化),本文給大家介紹的非常想詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • JavaScript中的值類型轉(zhuǎn)換介紹

    JavaScript中的值類型轉(zhuǎn)換介紹

    這篇文章主要介紹了JavaScript中的值類型轉(zhuǎn)換介紹,本文講解了值類型轉(zhuǎn)換規(guī)則、值類型轉(zhuǎn)換與比較、顯式類型轉(zhuǎn)換、對類型自動轉(zhuǎn)換的使用等內(nèi)容,需要的朋友可以參考下
    2014-12-12
  • JavaScript實(shí)現(xiàn)前端網(wǎng)頁版倒計時

    JavaScript實(shí)現(xiàn)前端網(wǎng)頁版倒計時

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)前端網(wǎng)頁版倒計時,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03

最新評論