亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

js仿小米官網圖片輪播特效

2019-11-20 08:50:21
字體:
來源:轉載
供稿:網友

小米官網給我的感覺是大氣、干凈。很多特效的加入讓人覺得耳目一新,big滿滿。 看到他們首頁的輪播圖實現挺有意思,于是自己模仿著寫了一個。

大致的感覺出來了,貼個圖先:

通過前端神器chrom的F12觀察小米官網的html代碼,不難看到他們使用5個div包裹圖片并使用了定位通過z-index來控制div層級,通過控制每個div的opacity屬性和display屬性進行元素的顯示、隱藏。

截圖如下(紅框內的opacity屬性):

好的,實現的手段知道了,那么頁面布局先搞出來。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"><html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Mking_js_</title> <script type="text/javascript" src="js/moveopacity_1.js"></script> <style type="text/css">  #warp{ width:800px; height: 400px; margin: 20px auto;    position: relative;}  #imgWarp{ width:600px; height: 400px;   position: absolute; top:0; left: 100px; display: inline-block;  }    .btn:hover{cursor: pointer;}  .btn{line-height: 30px; text-align: center;font-size: 25px; font-weight: bold;   color: #fff;width:80px; height: 30px;top:185px;background: #5f7c8a;position: absolute;   border-radius: 3px;  }  .btn:nth-of-type(1){    left: 0; }  .btn:nth-of-type(2) {   right: 0; }  img  {   position: absolute;   width:600px; height: 400px;   background-size:contain;   opacity: 0;   display: none;   z-index: 0;  }  img:nth-of-type(1) {    opacity: 1;    display: block;   z-index:5;  }  .links{ width:300px; height: 30px;   position: absolute; right:100px; bottom: 10px; z-index: 10; }  em{font-style: normal; display: inline-block; height: 30px; width: 30px;   margin-right: 15px; border: 1px solid #000000; vertical-align: top;   line-height: 30px; font-size: 20px; text-align: center;color: #fff;   font-weight: bold; border-radius: 50%; background-color: #008000;   border-color: #c0c0c0;   box-sizing: border-box;  }   em.active{    background-color: #fff;    color: #000000;   } </style></head><body> <div id="warp">  <div id="imgWarp" >   <img id="img1" src="product/1.jpg" TITLE="img1" />   <img id="img2" src="product/2.jpg" TITLE="img2"/>   <img id="img3" src="product/3.jpg" TITLE="img3"/>   <img id="img4" src="product/4.jpg" TITLE="img4"/>   <img id="img5" src="product/5.jpg" TITLE="img5" />   </div>  <span class="btn" id="left">left</span>  <span class="btn" id="right">right</span>  <div class="links">   <em class="active"></em>   <em></em>   <em></em>   <em></em>   <em></em>  </div> </div></body></html>

結構已經有了下面就是添加js讓它動起來。

頁面中的js:

window.onload = function(){    var oLeft = document.getElementById("left");    var oRight = document.getElementById("right");    var oWarp = document.getElementById("imgWarp");    var aImg = oWarp.getElementsByTagName("img");    var aEm = document.getElementsByTagName("em");     var i = 5;    btn = true;    oLeft.onclick = function(){     clearInterval(autoTimer);     if(btn){       btn=false;      fnAutoLeft();     }    };    function fnAutoLeft(){     var a = i % 5;     i-=1;     var b = i % 5;      startOpacMove(aImg[a],0,aImg[b],100);     setStyle(b);    }    oRight.onclick = function(){      if(btn){ //單位時間內只能觸發一次元素的顯示隱藏      clearInterval(autoTimer);      btn=false;      fnAutoRight();      }    };    var count =0;    function fnAutoRight(){     var a = i % 5;     i+=1;     var b = i % 5;          startOpacMove(aImg[a],0,aImg[b],100);      setStyle(b);     if(i==10){      i=5;      for(var j = 0;j<aImg.length;j++){       if(j==0){        aImg[0].style.cssText ="opacity: 1; z-index: 5; display: block;";       }       else{        aImg[j].style.cssText ="opacity: 0; z-index: 0; display: none;";       }      }     }    }     var autoTimer = setInterval(fnAutoRight,5000);        function setStyle(a){     for(var i=0;i<aEm.length;i++){       aEm[i].className="";     }      aEm[a].className="active";    }   }

運動的js:

function startOpacMove(obj1,tag1,obj2,tag2) {   var iCur1 = 0;  var iCur2 = 0;   var iTimer = null;  var iSpeed1 = -2;  var iSpeed2 = 2;  clearInterval(iTimer);   iTimer = setInterval(function(){   var iBtn = true;   iCur1 = css(obj1,'opacity')*100;   iCur2 = css(obj2,'opacity')*100;   iCur1 = Math.floor(iCur1);   iCur2 = Math.floor(iCur2);    if(iCur1 != tag1 && iCur2 != tag2){    iBtn = false;        obj1.style.opacity = (iCur1+iSpeed1)/100;    // console.log("隱藏元素時候的透明度值:"+(iCur1+iSpeed1)/100);    obj1.style.filter = 'alpha(opacity='+(iCur1+iSpeed1)+')';    obj1.style.zIndex = 0;        obj2.style.opacity = (iCur2+iSpeed2)/100;    obj2.style.filter = 'alpha(opacity='+(iCur2+iSpeed2)+')';    obj2.style.zIndex = 5;    obj2.style.display ="block";   }   if(iBtn){    clearInterval(iTimer);    obj1.style.display ="none";    obj1.style.opacity =0;    obj2.style.opacity =1;     btn = true;   }  },10);}    function css(obj,attr){ if(obj.currentStyle){ //當前瀏覽器下存在currentStyle屬性  return obj.currentStyle[attr]; }else{  return getComputedStyle(obj,false)[attr]; }} 

看下js代碼是如何讓圖畫動起來的

思考一個問題:畫面是如何向左向右切換的,完成這一步的必要條件是什么。假設當前顯示的第一張圖,向右切換時隱藏第一張圖顯示第二張圖,那么需要做的就是讓索引為0的圖片隱藏,索引為1的圖片顯示,再次點擊向右按鈕索引為1的圖片隱藏索引為2的圖片顯示,后面的情況依次類推,需要獲取的索引為0,1,2,3,4。最后注意下右側的邊界問題就OK了。

好的,貼代碼:

var i = 5; function fnAutoRight(){  var a = i % 5;  i+=1;  var b = i % 5;}

用變量 i 對5取余,得到的值是0-4的數,剛好是我們想要的結果,對應的a、b也剛好是想要隱藏、顯示的圖片的索引。再調用寫好的運動js、下方顯示當前圖片位置函數,那么向右這一塊就OK了。

圖片向左移動,向下我們需要隱藏顯示的圖片索引是什么,假設當前是第一張圖片點擊向左的時候,隱藏的圖片索引為0,顯示的圖片索引為4,再次點擊隱藏的索引為4顯示的為3。顯而易見,我們需要的索引為0、4、3、2、1。

代碼如下:

var i=5;function fnAutoLeft(){  var a = i % 5;  i-=1;  var b = i % 5; }

同樣是i=5,然后對5取余,得到的a為當前需要隱藏的圖片索引,讓i減一之后再對5取余得到的是需要顯示的圖片索引。這樣向左的問題也就解決了。

在最后部分,寫個setInterval定時播放的函數,然后設置一個間隔調用的時間,就完成了自動播放的功能。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲天堂男人天堂女人天堂| 北条麻妃在线一区二区| 久久久久久中文字幕| 国色天香2019中文字幕在线观看| 亚洲精品久久久一区二区三区| 亚洲精品久久久久久久久久久| 九色精品免费永久在线| 91精品国产精品| 欧美性生交xxxxxdddd| 免费成人高清视频| 97热精品视频官网| 欧美在线中文字幕| 精品国产一区av| 成人h视频在线| 亚洲有声小说3d| 亚洲精品国产精品国产自| 精品视频在线播放色网色视频| 亚洲精品一区久久久久久| 国产精品久久久久久久av大片| 98午夜经典影视| 亚洲福利视频在线| 草民午夜欧美限制a级福利片| 久久精品国产成人精品| 成人国产在线视频| 日韩电影中文字幕一区| 欧美日韩午夜激情| 欧美日本高清一区| 国产成人亚洲综合91精品| 欧美寡妇偷汉性猛交| 日韩av123| 精品偷拍各种wc美女嘘嘘| 亚洲国产欧美一区二区三区久久| 国产精品亚洲第一区| 欧美在线播放视频| 精品成人av一区| 亚洲精品suv精品一区二区| 亚洲缚视频在线观看| 亚洲图中文字幕| 国产一区二区三区在线播放免费观看| 亚洲xxxx做受欧美| 国产极品jizzhd欧美| 欧美日韩国产综合视频在线观看中文| 国产视频精品久久久| xx视频.9999.com| 在线视频欧美性高潮| 欧美成人手机在线| 亚洲精品www| 狠狠躁夜夜躁人人爽天天天天97| 日韩精品在线观| 亚洲国产另类 国产精品国产免费| 亚洲人午夜精品| 欧美美女18p| 97精品一区二区三区| 欧美激情国产日韩精品一区18| 成人午夜激情免费视频| 亚洲高清福利视频| 久久精品视频免费播放| 国产精品亚洲视频在线观看| 亚洲第一二三四五区| 成人444kkkk在线观看| 国产欧美日韩高清| 久久久中精品2020中文| 欧美激情区在线播放| 日韩av片永久免费网站| 久久久99久久精品女同性| 九九热99久久久国产盗摄| 在线日韩av观看| 91国产美女视频| 亚洲精品短视频| 在线成人一区二区| 免费91麻豆精品国产自产在线观看| 国产精品久久久久不卡| 国产999精品久久久| www.欧美三级电影.com| 色妞色视频一区二区三区四区| 欧美激情精品久久久久久变态| 欧美激情亚洲另类| 欧美激情中文网| 亚洲第一男人天堂| 91亚洲精华国产精华| 日韩成人免费视频| 色哟哟网站入口亚洲精品| 亚洲国产精品电影在线观看| 亚洲人成电影网站色www| 中文字幕免费精品一区| 日韩小视频在线| 亚洲国产精品电影在线观看| 欧美专区在线播放| 91精品视频免费观看| 91精品久久久久久久久久久久久| 中日韩美女免费视频网址在线观看| 精品丝袜一区二区三区| 久久久亚洲精品视频| 久久亚洲精品国产亚洲老地址| 亚洲精品www久久久| 欧美大全免费观看电视剧大泉洋| 亚洲国产欧美一区| 久久久久久久久久久亚洲| 日韩在线免费高清视频| 亚洲成av人影院在线观看| 欧美日韩在线视频观看| 亚洲人成网在线播放| 国产精品丝袜久久久久久高清| 最近2019年中文视频免费在线观看| 欧美视频二区36p| 久久激情五月丁香伊人| 午夜精品久久久久久99热软件| 国产主播欧美精品| 国产精品激情av在线播放| 中文综合在线观看| 国产精品日韩精品| 亚洲人成网站色ww在线| 91精品91久久久久久| 亚洲欧洲av一区二区| 久国内精品在线| 91久久久在线| 亚洲国产成人av在线| 久久久久久久亚洲精品| 亚洲男人天天操| 欧美日韩国产一区二区三区| 青青草原一区二区| 日韩av在线电影网| 搡老女人一区二区三区视频tv| 91色视频在线导航| 国产ts人妖一区二区三区| 亚洲在线视频福利| 国产中文欧美精品| 亚洲片国产一区一级在线观看| 国产一级揄自揄精品视频| 26uuu亚洲国产精品| 亚洲美腿欧美激情另类| 国产一区欧美二区三区| 国产精品久久久久福利| 国模叶桐国产精品一区| 久久香蕉精品香蕉| 日韩少妇与小伙激情| 一区二区av在线| 欧美情侣性视频| 中文字幕av一区二区三区谷原希美| 国产成人久久久精品一区| 欧美日韩国产页| 欧美亚洲日本黄色| 中文字幕一精品亚洲无线一区| 欧美诱惑福利视频| 亚洲人av在线影院| 国产精品91免费在线| 欧美色图在线视频| 日韩va亚洲va欧洲va国产| 欧美大片欧美激情性色a∨久久| 亚洲欧洲日产国码av系列天堂| 国产婷婷色综合av蜜臀av| 久久久国产一区二区三区| 中文字幕日韩欧美精品在线观看| 国产日韩中文在线| 国产精品成av人在线视午夜片| 国产精品成人av性教育| 国产精品高清在线| 国产欧美婷婷中文| 国产精品99久久久久久人| 欧美日韩成人黄色| 亚洲少妇中文在线| 成人激情在线观看| 亚洲福利小视频| 亚洲经典中文字幕|