最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)多重選項(xiàng)卡切換輪播圖

 更新時(shí)間:2021年09月22日 11:17:00   作者:sv_Reg  
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)多重選項(xiàng)卡切換輪播圖制作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

輪播動(dòng)畫來提升頁面的顏值和交互性能,下面我們將一起學(xué)習(xí)利用html , css和Javascript等前端開發(fā)基礎(chǔ)知識(shí)來制作一個(gè)簡單的輪播圖。

輪播圖簡介:在一個(gè)網(wǎng)站的某一特定模塊,通過電腦上鼠標(biāo)點(diǎn)擊或鼠標(biāo)移入、手機(jī)上手指滑動(dòng)后,可以分別展示不同的圖片,這個(gè)模塊就叫做輪播模塊。

(做的不好的地方歡迎各位大佬批評(píng)指正,感覺有幫助的同學(xué)麻煩給顆星星哦~)

html布局部分:

<div id="box">
    <div class="scenery pic">
      <img class="show" src="imgs/s2.jpg" alt="scenery">
      <img src="imgs/s3.jpg" alt="scenery">
      <img src="imgs/s1.jpg" alt="scenery">
      <img src="imgs/s5.jpg" alt="scenery">
      <img src="imgs/s4.jpg" alt="scenery">
    </div>
    <div class="car pic">
      <img src="imgs/animal4.jpg" alt="animal">
      <img src="imgs/animal3.jpg" alt="animal">
      <img src="imgs/animal2.jpg" alt="animal">
      <img src="imgs/animal1.jpg" alt="animal">
    </div>
    <div class="entertainment pic">
      <img src="imgs/entertainment1.jpg" alt="entertainment">
      <img src="imgs/entertainment2.jpg" alt="entertainment">
      <img src="imgs/entertainment3.jpg" alt="entertainment">
      <img src="imgs/entertainment4.jpg" alt="entertainment">
      <img src="imgs/entertainment5.jpg" alt="entertainment">
    </div>
    <div class="leftbar">
      <div class="checked">風(fēng)景</div>
      <div>名車</div>
      <div>娛樂</div>
    </div>
    <div class="bottombar">
 
    </div>
</div>

CSS樣式部分:

/* 為了布局方便,容器里大多采用的flex */
#box {
      position: relative;
      width: 460px;
      height: 300px;
      margin: 40px auto;
      border: 1px solid rgb(109, 98, 98);
      user-select: none;
    }
    /* 側(cè)邊欄布局 */
    .leftbar {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      position: absolute;
      top: -1px;
      left: -80px;
      width: 80px;
      height: 100%;
      text-align: center;
      font-size: 20px;
      cursor: pointer;
    }
 
    .leftbar div {
      flex: 1;
      line-height: 100px;
      background-color: cadetblue;
      letter-spacing: 5px;
    }
 
    .leftbar div:nth-child(2) {
      border-top: 1px solid #fff;
      border-bottom: 1px solid #fff;
    }
 
    /* 底部切換按鈕樣式設(shè)計(jì) */
    .bottombar {
      display: flex;
      justify-content: space-between;
      position: absolute;
      bottom: -1px;
      right: -1px;
      z-index: 10;
      width: 200px;
      height: 30px;
      cursor: pointer;
    }
 
    .bottombar div {
      flex: 1;
      line-height: 30px;
      background-color: rgb(232, 233, 235, .5);
      text-align: center;
      font-weight: 700;
    }
 
    .bottombar div~div {
      border-left: 1px solid grey;
    }
 
    img {
      position: absolute;
      display: block;
      width: 460px;
      height: 300px;
    }
 
    .show {
      z-index: 5;
    }
 
    .leftbar .checked,
    .bottombar .checked {
      background-color: rgb(241, 5, 5);
    }

javascript邏輯實(shí)現(xiàn)部分:

var Box = document.querySelector('#box'), pic = Box.querySelectorAll('.pic'),
    Idx = 0, index = 0, timer = null,
    ltDiv = Box.querySelector('.leftbar'), btDiv = Box.querySelector('.bottombar'),
    Img = Box.querySelectorAll('img');
 
    function createBtBar(len) {//動(dòng)態(tài)創(chuàng)建底部切換按鈕
      var str = '';
      for (var i = 0; i < len; i++) {
        str += `<div>${i + 1}</div>`;
      }
      btDiv.innerHTML = str;
      btDiv.children[0].classList.add('checked');
    }
 
    function initialize() {//頁面初始狀態(tài)
      createBtBar(pic[0].children.length);
    }
    initialize();
 
    function clearZindex() {//重置所有圖片的定位層級(jí)
      for (var k = 0; k < Img.length; k++) {
        Img[k].classList.remove('show');
      }
    }
 
    ltDiv.addEventListener('click', (e) => {//側(cè)邊欄項(xiàng)目切換
      if (e.target.tagName.toLowerCase() === 'div') {
        for (var j = 0; j < ltDiv.children.length; j++) {
          ltDiv.children[j].classList.remove('checked');
        }
 
        clearZindex();
        Idx = 0;
        index = getEleIdx(e.target);
        ltDiv.children[index].classList.add('checked');
        pic[index].children[0].classList.add('show');
        createBtBar(pic[index].children.length);
      }
    });
 
    btDiv.addEventListener('click', (e) => {//委托監(jiān)聽底部切換按鈕
      if (e.target.tagName.toLowerCase() === 'div') {
        function changePic(callback) {
          btDiv.children[Idx].classList.remove('checked');
 
          clearZindex();
          callback && callback();
          btDiv.children[Idx].classList.add('checked');
          pic[index].children[Idx].classList.add('show');
        }
        changePic(function () {
          Idx = getEleIdx(e.target);
        });
      }
    });
 
    function getEleIdx(item) {//獲取DOM元素下標(biāo)
      var elements = item.parentNode.children;
      for (var i = 0, len = elements.length; i < len; i++) {
        if (item === elements[i]) {
          return i;
        }
      }
    }
 
    function loopShow() {//循環(huán)自動(dòng)展示
      clearInterval(timer);
      timer = setInterval(function () {
        pic[index].children[Idx].classList.remove('show');
        btDiv.children[Idx].classList.remove('checked');
        Idx += 1;
        if (Idx < 0 || Idx > pic[index].children.length - 1) {
          Idx = 0;
        }
        pic[index].children[Idx].classList.add('show');
        btDiv.children[Idx].classList.add('checked');
      }, 1000);
    }
 
    loopShow();
 
    Box.addEventListener('mouseover', function () {
      clearInterval(timer);//鼠標(biāo)移入展示區(qū)停止輪播
    });
    Box.addEventListener('mouseout', function () {
      loopShow();//鼠標(biāo)移出展示區(qū)自動(dòng)輪播
    });

具體實(shí)現(xiàn)的展示效果入下:

 (Tip: 各位注意自行準(zhǔn)備圖片放到自己的文件夾里哦~)

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

相關(guān)文章

  • Bootstrap DateTime Picker日歷控件簡單應(yīng)用

    Bootstrap DateTime Picker日歷控件簡單應(yīng)用

    這篇文章主要介紹了Bootstrap DateTime Picker日歷控件的簡單應(yīng)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 自己寫的Javascript計(jì)算時(shí)間差函數(shù)

    自己寫的Javascript計(jì)算時(shí)間差函數(shù)

    Javascript計(jì)算時(shí)間差函數(shù),獲得時(shí)間差,時(shí)間格式為 年-月-日 小時(shí):分鐘:秒 或者 年/月/日 小時(shí):分鐘:秒。
    2013-10-10
  • js replace 全局替換的操作方法

    js replace 全局替換的操作方法

    這篇文章主要介紹了js replace 全局替換的操作方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • JavaScript函數(shù)Call、Apply原理實(shí)例解析

    JavaScript函數(shù)Call、Apply原理實(shí)例解析

    這篇文章主要介紹了JavaScript函數(shù)Call、Apply原理實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • JavaScript:ES2019 的新特性(譯)

    JavaScript:ES2019 的新特性(譯)

    這篇文章主要介紹了JavaScript:ES2019 的新特性(譯),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • js為空或不是對(duì)象問題的快速解決方法

    js為空或不是對(duì)象問題的快速解決方法

    這篇文章主要介紹了js為空或不是對(duì)象問題的快速解決方法。需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2013-12-12
  • 使用jscript實(shí)現(xiàn)二進(jìn)制讀寫腳本代碼

    使用jscript實(shí)現(xiàn)二進(jìn)制讀寫腳本代碼

    Reading And Writing Binary Files Using JScript正如我剛才推什么我能做的JScript中,我想出了對(duì)問題的二進(jìn)制文件。以下級(jí)的解決,這為小到中等大小的文件。我的部分包括這個(gè)職位在這里,因?yàn)槲壹磳⒏吨T表決,在一個(gè)職位約發(fā)送帶有附件的電郵通過JScript和它會(huì)使用這個(gè)二進(jìn)制文件碼來讀取,在二進(jìn)制附件檔案。
    2008-06-06
  • webpack 4.0.0-beta.0版本新特性介紹

    webpack 4.0.0-beta.0版本新特性介紹

    本篇文章主要介紹了webpack 4.0.0-beta.0版本新特性介紹,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • mvc 、bootstrap 結(jié)合分布式圖簡單實(shí)現(xiàn)分頁

    mvc 、bootstrap 結(jié)合分布式圖簡單實(shí)現(xiàn)分頁

    這篇文章主要介紹了mvc 、bootstrap 結(jié)合分布式圖簡單實(shí)現(xiàn)分頁的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-10-10
  • Iframe自適應(yīng)高度絕對(duì)好使的代碼 兼容IE,遨游,火狐

    Iframe自適應(yīng)高度絕對(duì)好使的代碼 兼容IE,遨游,火狐

    Iframe自適應(yīng)高度絕對(duì)好使的代碼IE,遨游,火狐都兼容,需要的朋友可以參考下。
    2011-01-01

最新評(píng)論

南平市| 盐津县| 马鞍山市| 隆安县| 长阳| 南丰县| 岚皋县| 乌拉特前旗| 泉州市| 静海县| 津南区| 逊克县| 四子王旗| 蒲城县| 壶关县| 刚察县| 瓦房店市| 盐城市| 游戏| 大田县| 南投市| 磴口县| 漾濞| 伊吾县| 磐安县| 盘锦市| 炉霍县| 瓦房店市| 习水县| 肇源县| 珠海市| 精河县| 惠东县| 清河县| 鄄城县| 体育| 当阳市| 武安市| 泾源县| 阿瓦提县| 昌吉市|