国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用原生js實現(xiàn)輪播圖效果

wanghui / 2392人閱讀

摘要:知乎原文我的博客微信公眾號這幾天在逛網(wǎng)站的時候,發(fā)現(xiàn)很多網(wǎng)站都有輪播圖這個效果,所以我就仿照小米的官網(wǎng)用原生寫了一個輪播圖效果,希望大家喜歡。

知乎原文 我的博客 微信公眾號
這幾天在逛網(wǎng)站的時候,發(fā)現(xiàn)很多網(wǎng)站都有輪播圖這個效果,所以我就仿照小米的官網(wǎng)用原生js寫了一個輪播圖效果,希望大家喜歡。
這是我發(fā)布在github上的最后實現(xiàn)的效果:https://heternally.github.io/...

下面我簡單跟大家說一下我實現(xiàn)該效果的過程,如果有什么錯誤的地方,歡迎大家說出來,以方便大家互相學習。

我相信前面簡單的html+css大家應該都會,我這里就不說了,簡單給大家展示一下代碼:

HTML部分

css部分

* {
  margin:0;
  padding:0;
}
#wrap {
  position:relative;
  margin:20px auto;
  width:1226px;
  height:460px;
}
#wrap .banner {
  position:absolute;
  top:0;
  width:100%;
  height:100%;
  opacity:0;
  transition: opacity 2s;
}
#wrap .tab{
  position:absolute;
  bottom:10px;
  right:10px;
}
    #wrap .tab span{
      display: inline-block;
      width:6px;
      height:6px;
      margin:3px;
      background:rgba(105,105,105,0.5);
      border-radius:50%;
      cursor: pointer;
      border:2px solid #887B6E;
    }
    #wrap .tab span.on{
      background:#E2CEB7;
    }
    #wrap .tab span:hover{
      background:#E2CEB7;
    }
#wrap .prev {
  position:absolute;
  left:20px;
  top:210px;
  width:41px;
  height:69px;
  background: url("images/icon-slides.png") 82px;
  cursor:pointer;
}
#wrap .prev:hover{
  background: url("images/icon-slides.png");
} 
#wrap .next {
  position:absolute;
  right:20px;
  top:210px;
  width:41px;
  height:69px;
  background: url("images/icon-slides.png") 41px;
  cursor:pointer;
}
#wrap .next:hover{
  background: url("images/icon-slides.png") 123px;
}

上面的代碼都很簡單,稍微看看就可以了,下面開始重點說下js部分

首先我先獲取各個節(jié)點,通過類名,ID等方法:

var oBody = document.getElementsByTagName("body")[0];
var aBanner = document.getElementsByClassName("banner");
var aSpan = document.getElementsByClassName("tab") [0].getElementsByTagName("span");
var oNext = document.getElementsByClassName("next")[0];
var Oprev = document.getElementsByClassName("prev")[0];
var Oon = document.getElementsByClassName("on")[0];

接下來是初始化界面,因為我在css里面設置了圖片的不透明度opacity:0;所以我在實現(xiàn)輪播圖前先使得第一張圖片顯示和第一個小圓點顏色為白色:

aBanner[0].style.opacity = "1";
aSpan[0].className = "on";
var num = 0;

然后就是設置前一張,后一張,小圓點的按鈕效果了,實現(xiàn)點擊小圓點,會使相對應的圖片顯示,點擊前一張,會使前一張圖片顯示;后一張效果一樣:

for(var i = 0;i < aSpan.length;i++){
aSpan[i].index = i;
aSpan[i].onclick = function(){  //點擊小圓點圖片相對應的進行切換
for(var j = 0 ;j < aSpan.length; j++){
  num = this.index;
  aSpan[j].className = "";
  aBanner[j].style.opacity = "0";
}
aSpan[num].className = "on";
aBanner[num].style.opacity = "1";
}
oNext.onclick = function(){//按下圖片切換到后一張
  for(var j = 0 ;j < aSpan.length; j++){
  if(aSpan[j].className == "on"){
      aSpan[j].className = "";
      aBanner[j].style.opacity = "0";
      j++;
      num++;
      if(j > 4){
      j = 0;
  }
      aSpan[j].className = "on";
aBanner[j].style.opacity = "1";

  }
}
}

  Oprev.onclick = function(){  //按下圖片切換到前一張
  for(var j = 0 ;j < aSpan.length; j++){
      if(aSpan[j].className == "on"){
          aSpan[j].className = "";
          aBanner[j].style.opacity = "0";
          j--;
          num--;
          if(j < 0){
          j = 4;
      }
          aSpan[j].className = "on";
  aBanner[j].style.opacity = "1";

  }
}
}  
}

在這部分給一個for循環(huán),length為小圓點的個數(shù),在這個循環(huán)中,先給每個圓點的下標值賦值,使得每個圓點對應一張圖片;

然后編寫點擊圓點的函數(shù),在函數(shù)中實現(xiàn)當前圓點的時候,獲取當前的下標值,講該值賦給全局變量num,將所以圖片的opacity設置為o,去掉所有圓點的"on"樣式,然后將第num張圖片的opacity設置為1,添加"on"樣式,這樣就實現(xiàn)了點擊圓點跳轉(zhuǎn)到相應的圖片。

同樣的就可以實現(xiàn)向前向后按鈕效果.

最后設置一個定時器的函數(shù),實現(xiàn)圖片輪播:

function Time(){/*設置定時器運行的函數(shù)*/
num++;
if(num < 5){
    for(var j = 0 ;j < aSpan.length; j++){
    aSpan[j].className = "";
    aBanner[j].style.opacity = "0";
}
aSpan[num].className = "on";
aBanner[num].style.opacity = "1";
}else {
    num = -1;
}         
}
clearInterval(timer);
var timer = setInterval("Time()",2000);/*調(diào)用定時器*/

oBody.onmouseover = function(){/*鼠標引入,清除定時器,輪播圖停止*/
    clearInterval(timer);
};
oBody.onmouseout = function(){/*鼠標移出,重新調(diào)用定時器,輪播圖開始*/
    clearInterval(timer);
     timer = setInterval("Time()",2000);
};

在調(diào)用定時器的時候,我用的使setInterval,或者你要使用setTimerout也是可以的;

在調(diào)用定時器要先清除定時器,不然會讓定時器一直疊加,使得輪播速度越來越快;我還加了當鼠標移入的時候,輪播圖停止,即定時器被清除了,當鼠標移出的時候,定時器又重新被調(diào)用。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/112379.html

相關(guān)文章

  • 使用原生js實現(xiàn)播圖效果

    摘要:知乎原文我的博客微信公眾號這幾天在逛網(wǎng)站的時候,發(fā)現(xiàn)很多網(wǎng)站都有輪播圖這個效果,所以我就仿照小米的官網(wǎng)用原生寫了一個輪播圖效果,希望大家喜歡。 知乎原文 我的博客 微信公眾號這幾天在逛網(wǎng)站的時候,發(fā)現(xiàn)很多網(wǎng)站都有輪播圖這個效果,所以我就仿照小米的官網(wǎng)用原生js寫了一個輪播圖效果,希望大家喜歡。這是我發(fā)布在github上的最后實現(xiàn)的效果:https://heternally.gith...

    happen 評論0 收藏0
  • 使用原生js實現(xiàn)播圖效果

    摘要:知乎原文我的博客微信公眾號這幾天在逛網(wǎng)站的時候,發(fā)現(xiàn)很多網(wǎng)站都有輪播圖這個效果,所以我就仿照小米的官網(wǎng)用原生寫了一個輪播圖效果,希望大家喜歡。 知乎原文 我的博客 微信公眾號這幾天在逛網(wǎng)站的時候,發(fā)現(xiàn)很多網(wǎng)站都有輪播圖這個效果,所以我就仿照小米的官網(wǎng)用原生js寫了一個輪播圖效果,希望大家喜歡。這是我發(fā)布在github上的最后實現(xiàn)的效果:https://heternally.gith...

    Anshiii 評論0 收藏0
  • 原生 js 實現(xiàn)移動端 Touch 播圖

    摘要:輪播圖輪播圖其實就是通過手指的滑動,來左右切換輪播圖,下面我們通過一個案例,來實現(xiàn)下。結(jié)構(gòu)結(jié)構(gòu)上,還是用來存放輪播圖片,來存放輪播小圓點樣式初始化的一些標簽,都會有一些默認樣式,比如標簽默認是有一個邊距的,為了不影響美觀,我們需要清除掉。 showImg(https://segmentfault.com/img/remote/1460000017719408?w=1920&h=1080...

    Elle 評論0 收藏0
  • 手把手教你用原生JavaScript造輪子(2)——播圖(更新:ES6版本)

    摘要:綁定輪播事件然后是鼠標移入移出事件的綁定鼠標移入移出事件移入時停止輪播播放的定時器,移出后自動開始下一張的播放。 通過上一篇文章的學習,我們基本掌握了一個輪子的封裝和開發(fā)流程。那么這次將帶大家開發(fā)一個更有難度的項目——輪播圖,希望能進一步加深大家對于面向?qū)ο蟛寮_發(fā)的理解和認識。 So, Lets begin! 目前項目使用 ES5及UMD 規(guī)范封裝,所以在前端暫時只支持標簽的引入方式...

    jasperyang 評論0 收藏0

發(fā)表評論

0條評論

wanghui

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<