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

原生js實現無縫輪播圖

 更新時間:2020年01月11日 14:21:17   作者:honey_seve7n  
這篇文章主要為大家詳細介紹了原生js實現無縫輪播圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js實現無縫輪播圖的具體代碼,供大家參考,具體內容如下

先上效果圖

原理圖

如圖可見,是頁面按順序依次顯示5張圖片,包裹這五張圖片的外層的盒子,我們叫ul,通過向左或右移動不同距離,實現在視圖中顯示的不同的圖片,實現輪播,而同時下面的分頁小球需要根據當前顯示的內容進行點亮;

而無縫輪播圖需要在第五張圖片后面再加上第一張圖片,這樣通過右側箭頭,向右切換,當頁面切換到第六張時,也就是最后一張圖片,此時需要將ul的位置設置為第一張圖的位置,然后從第一張圖片滑動到第二張,形成一個無縫過渡;

同理,樣通過左側箭頭,向左切換,已經顯示到第一張圖片時,再向左切換,ul會設置為到第五張圖的位置,形成一個無縫過渡

html結構

<div class="wrapper">
 <div class="inner">
  <ul>
   <li>頁面1</li>
   <li>頁面2</li>
   <li>頁面3</li>
   <li>頁面4</li>
   <li>頁面5</li>
   <li>頁面1</li>
  </ul>
  <div class="circle">
   <span class="current">1</span>
   <span>2</span>
   <span>3</span>
   <span>4</span>
   <span>5</span>
  </div>
  <div class="direction">
   <span class="left"><</span>
   <span class="right">></span>
  </div>
 </div>
</div>

js代碼

//獲取頁面元素
 var ul = document.getElementsByTagName("ul")[0];
 var inner = document.getElementsByClassName("inner")[0];
 var circle = document.getElementsByClassName("circle")[0];
 var spanArr = circle.children;
 var direction =document.getElementsByClassName("direction")[0];
 var dirChid=direction.children;
 var innerWidth = inner.offsetWidth;
 //兩個定時器(一個記錄圖片,一個記錄小圓球)
 var dindex = 0;
 var span = 0;
 //var ulNewLi = ul.children[0].cloneNode(true);
 // ul.appendChild(ulNewLi);
 for(var i = 0;i<spanArr.length;i++){
  //給每個span綁定index,為了和ul中的頁面聯(lián)動
  spanArr[i].index = i;
  spanArr[i].onmouseover = function () {
   //點擊分頁小球,添加current類,current類定義了小球的背景顏色
   for (var j = 0; j<spanArr.length ;j++) {
    spanArr[j].className = "";
   }
   this.className = "current";
   dindex = span = this.index;
   //調用緩動函數,傳入參數:移動元素,目標距離
   animation(ul,-this.index*innerWidth);
  }
 }
 //為左箭頭綁定事件
 //dindex 記錄圖片的索引,span記錄小球的索引,圖片個數為6,小球的個數為5
 dirChid[0].οnclick=function (event) {
  //每次點擊左切換,圖片的索引減一,小球的索引減一
  dindex--;
  //圖片的索引<0時,設置ul的位置為第五個圖片的位置
  if(dindex<0){
   ul.style.left= -innerWidth*spanArr.length+"px";
   dindex= spanArr.length-1;
  }
  animation(ul,-dindex*innerWidth);
  //小球的索引減一
  span--;
  //當小球索引小于0時,設置它的索引為4
  if(span<0){
   span= spanArr.length-1;
  }
  //點亮小球
  for(var i= 0 ; i<spanArr.length;i++){
   spanArr[i].className = "";
  }
  spanArr[span].className = "current";
 
 }
 //為右箭頭綁定事件,
 dirChid[1].οnclick=function () {
  dindex++;
  //圖片的索引大于小球長度個數時,設置ul的位置為第1張圖片的位置
  if(dindex>spanArr.length){
   ul.style.left=0;
   dindex=1;
  }
  animation(ul,-dindex*innerWidth);
  span++;
  if(span>spanArr.length-1){
   span= 0;
  }
  for(var k= 0 ; k<spanArr.length;k++){
   spanArr[k].className = "";
  }
  spanArr[span].className = "current";
 
 }
 
 //封裝緩動動畫函數
 function animation(ele,target) {
  clearInterval(ele.timer);
  ele.timer=setInterval(function () {
   //獲取起使位置
   leader= ele.offsetLeft;
   //獲取緩動動畫步長
   var step = (target-leader)/10;
   //支持不同方向的移動,所以步長有正有負
   step = step >0? Math.ceil(step):Math.floor(step);
   //當前位置= 盒子的位置+步長
   leader = leader +step;
   ele.style.left = leader+"px";
   if(ele.offsetLeft === target) {
    clearInterval(ele.timer);
   }
  },30)
 
}

精彩專題分享:jQuery圖片輪播 JavaScript圖片輪播 Bootstrap圖片輪播

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

相關文章

  • js實現列表按字母排序

    js實現列表按字母排序

    這篇文章主要為大家詳細介紹了js實現列表按字母排序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • HTML5+setCutomValidity()函數驗證表單實例分享

    HTML5+setCutomValidity()函數驗證表單實例分享

    本文給大家分享的是在HTML5中結合setCutomValidity()函數實現驗證表單的實例,非常的時間實用,這里推薦給大家,有需要的小伙伴可以參考下。
    2015-04-04
  • 原生js實現文件上傳、下載、封裝等實例方法

    原生js實現文件上傳、下載、封裝等實例方法

    在本篇文章里小編給各位整理的是關于原生js實現文件上傳、下載、封裝等實例方法,需要的朋友們可以參考學習下。
    2020-01-01
  • 在JavaScript中,為什么要盡可能使用局部變量?

    在JavaScript中,為什么要盡可能使用局部變量?

    在JavaScript中,我們應該盡可能的用局部變量來代替全局變量,這句話所有人都知道,可是這句話是誰先說的?為什么要這么做?有什么根據么?
    2009-04-04
  • JavaScript閉包原理及作用詳解

    JavaScript閉包原理及作用詳解

    閉包是指內部函數總是可以訪問其所在的外部函數中聲明的變量和參數,即使在其外部函數被返回(壽命終結)了之后。這篇文章將為大家詳細介紹一下閉包的原理,作用及用途,快來跟隨小編一起學習一下吧
    2021-12-12
  • JavaScript計算字符串實際長度方法示例

    JavaScript計算字符串實際長度方法示例

    這篇文章主要為大家介紹了JavaScript計算字符串實際長度方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 無循環(huán) JavaScript(map、reduce、filter和find)

    無循環(huán) JavaScript(map、reduce、filter和find)

    本文由淺入深地介紹了map、reduce、filter和find函數,如何一步一步把循環(huán)從代碼中抽離掉
    2017-04-04
  • 原生javascript實現的一個簡單動畫效果

    原生javascript實現的一個簡單動畫效果

    下面小編就為大家?guī)硪黄鷍avascript實現的一個簡單動畫效果。小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-03-03
  • JS實現閉包中的沙箱模式示例

    JS實現閉包中的沙箱模式示例

    這篇文章主要介紹了JS實現閉包中的沙箱模式,結合實例形式分析了閉包模塊化實現沙箱模式的原理、步驟與相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • 微信小程序中如何實現動態(tài)改變SVG顏色和尺寸

    微信小程序中如何實現動態(tài)改變SVG顏色和尺寸

    SVG可被非常多的工具讀取和修改SVG與JPEG和GIF圖像比起來,尺寸更小,且可壓縮性更強,下面這篇文章主要給大家介紹了關于微信小程序中如何實現動態(tài)改變SVG顏色和尺寸的相關資料,需要的朋友可以參考下
    2022-07-07

最新評論