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

圖解js圖片輪播效果

 更新時間:2015年12月20日 08:57:35   作者:anywing  
這篇文章主要以圖片展示的方式向大家講解了js圖片輪播效果的實現方法,對圖片輪播實現原理進行了詳細介紹,感興趣的朋友可以參考一下

本文實例講解了js圖片輪播效果的實現原理,分享給大家供大家參考,具體內容如下

兩種圖片輪播實現方案,先來看效果對比:

方案一:

原理:將圖片擺成一行,從左到右依次滾動進入視野,當滾動到最后一張時,從右到左滾動回到第一張。這么做的缺點是,滾動到最后一張時,會有一個反向,導致整個滾動過程不連貫。

 方案二:

實現原理示意圖

 

原理:

1.輪播過程中,有幾個關鍵元素:一個舞臺(綠框)、候場區(qū)(黑框)、排隊區(qū)(紅框)和兩個數組A和B。A用來保存正在展示和下一個將要展示的圖片,如:圖片1、2;B用來保存排隊等候出場的圖片,如圖片5、4、3。

2.每一步輪播時,要做的事情如下:

A要做的事情是把它的第一個元素向左移走,把第二個元素向左移進展示區(qū)域;然后把剛才的第一個元素從A中shift出去,并splice進B的第一個位置上。

B要做的事情是把它的最后一個元素,移到候場區(qū)(即目前圖2所在的位置)等候;然后把剛才的最后一個元素從B中pop出去,并push到A中。

Code:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>圖片輪播-v2</title>
 <style>

 ul{
  margin: 0;
  padding: 0;
  list-style: none;

 }

 .sliderWrap{
  width: 200px;
  height: 112px;
  overflow: hidden;
  margin: 0 auto;
 }
 .sliderWrap ul{
  position: relative;
  width: 1000px;
  transition: left .5s ease;
  left: 0;
 }
 .sliderWrap li{
  position: relative;
  float: left;
 }
 .sliderWrap ul li img{
  width: 100%;
 }
 </style>
</head>
<body>
<div class="sliderWrap">
 <ul id="slider">
 <li><img src="images/slider/slider1.jpg" alt=""></li>
 <li><img src="images/slider/slider2.jpg" alt=""></li>
 <li><img src="images/slider/slider3.jpg" alt=""></li>
 <li><img src="images/slider/slider4.jpg" alt=""></li>
 </ul>
</div>
<input type="button" value="click me" id="next"/>
<script>
 /**
 * 圖片輪播
 * @type {Element}
 */
 var btn = document.getElementById("next");
 var dom = document.getElementById("slider");
 var liArr = dom.getElementsByTagName("li");

 var curWidth = 200;
 var ulWidth = curWidth * liArr.length;
 var show = [];
 var circle = [];

 var goAway = "translate(-" + curWidth +"px, 0) translateZ(0px)";
 var goIn = "translate(0, 0) translateZ(0px)";
 var goPre = "translate(" + curWidth +"px, 0) translateZ(0px)";

 //保證所有l(wèi)i在ul中能在一行內放下
 dom.style.width = ulWidth + "px";

 for(var i = 0, len = liArr.length; i < len; i++){
 var curLi = liArr[i];

 curLi.setAttribute("data-index", i);
 curLi.style.width = curWidth + "px";

 if(i == 0){
  curLi.style.left = 0;
  show.push(curLi);
 }else{
  curLi.style.left = - curWidth * i + "px";
  if(i > 1){
  translate(curLi, goAway, '')
  circle.push(curLi);
  }else{
  show.push(curLi);
  translate(curLi, goPre, '');
  }
 }


 }

 circle.reverse();

 btn.onclick = function(){
 //已展示的圖片滾粗
 var showFirst = show.shift();
 translate(showFirst, goAway, "300ms");

 //正在展示的圖片
 translate(show[0], goIn, "300ms");
 circle.splice(0, 0, showFirst);

 //準備好下一個將要展示的圖片
 var nextPre = circle.pop();
 translate(nextPre, goPre, "0ms");
 show.push(nextPre);

 };

 function translate(dom, goType, time){
 dom.style.transform =
  dom.style.webkitTransform =
   dom.style.mozTransform =
    dom.style.msTransform =
     dom.style.oTransform = goType;

 dom.style.transitionDuration =
  dom.style.webkitTransitionDuration =
   dom.style.mozTransitionDuration =
    dom.style.msTransitionDuration =
     dom.oTransitionDuration = time;


 }

</script>
</body>
</html>

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

以上就是js圖片輪播效果的實現原理以及詳細代碼,希望對大家學習javascript程序設計有所幫助。

相關文章

  • prototype.js簡單實現ajax功能示例

    prototype.js簡單實現ajax功能示例

    這篇文章主要介紹了prototype.js簡單實現ajax功能,結合實例形式分析了prototype.js前臺實現ajax與后臺struts的相關操作技巧,需要的朋友可以參考下
    2017-10-10
  • javascript避免數字計算精度誤差的方法詳解

    javascript避免數字計算精度誤差的方法詳解

    本篇文章主要是對javascript避免數字計算精度誤差的方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-03-03
  • js動態(tài)設置鼠標事件示例代碼

    js動態(tài)設置鼠標事件示例代碼

    動態(tài)設置鼠標事件的方法有很多,接下來為大家介紹下js中是如何做到的,感興趣的朋友不要錯過
    2013-10-10
  • es6函數name屬性功能與用法實例分析

    es6函數name屬性功能與用法實例分析

    這篇文章主要介紹了es6函數name屬性,結合實例形式分析了es6函數name屬性基本原理、功能、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • jquery方法+js一般方法+js面向對象方法實現拖拽效果

    jquery方法+js一般方法+js面向對象方法實現拖拽效果

    多種方法制作的div拖拽,簡單實用,包括了jquery方法、js一般方法、js面向對象方法
    2012-08-08
  • JavaScript進階(三)閉包原理與用法詳解

    JavaScript進階(三)閉包原理與用法詳解

    這篇文章主要介紹了JavaScript閉包原理與用法,結合實例形式詳細分析了JavaScript閉包相關概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-05-05
  • javascript閉包的理解

    javascript閉包的理解

    這篇文章主要介紹了js閉包的相關知識,閉包是Javascript的一個難點,但也是一個很重要的知識點,需要的朋友可以參考下
    2015-04-04
  • 移動端基礎事件總結與應用

    移動端基礎事件總結與應用

    本文主要介紹了移動端基礎事件總結與應用,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • js實現列表按字母排序

    js實現列表按字母排序

    這篇文章主要為大家詳細介紹了js實現列表按字母排序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • JSON獲取屬性值方法代碼實例

    JSON獲取屬性值方法代碼實例

    這篇文章主要介紹了JSON獲取屬性值方法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06

最新評論