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

原生js實(shí)現(xiàn)網(wǎng)易輪播圖效果

 更新時(shí)間:2020年04月10日 16:35:26   作者:qq_36400099  
這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)網(wǎng)易輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、實(shí)現(xiàn)效果圖

二、分析布局

主盒子里分上下兩個小盒子(1和2)。
包含圖片的盒子占兩張圖片的寬(3),處于上盒子中,當(dāng)前圖片在上盒子(1)中,其它圖片在盒子(3)的右側(cè)等待播放。
下邊的盒子(2)包括了六個小方塊及定位在主盒子上的兩個箭頭。

三、html部分  

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>wangyi</title>
 <link type="text/css" rel="stylesheet" href="css/guide.css"/>
 <script type="text/javascript" src="../animate.js"></script>
 <script type="text/javascript" src="js/main.js"></script>
</head>
<body>
 <div class="w-slider">
 <div class="slider">
  <div class="slider-main" id="slider_main_block">
  <div class="slider-main-img"><a href="#"><img src="images/1.jpg"/></a></div>
  <div class="slider-main-img"><a href="#"><img src="images/2.jpg"/></a></div>
  <div class="slider-main-img"><a href="#"><img src="images/3.jpg"/></a></div>
  <div class="slider-main-img"><a href="#"><img src="images/4.jpg"/></a></div>
  <div class="slider-main-img"><a href="#"><img src="images/5.jpg"/></a></div>
  <div class="slider-main-img"><a href="#"><img src="images/6.jpg"/></a></div>

  </div>
 </div>
 <div class="slider-ctrl" id="slider_ctrl">
  <span class="slider-ctrl-pre"></span>
  <span class="slider-ctrl-next"></span>
 </div>
 </div>
</body>
</html>

四、CSS部分

* {
 margin: 0;
 padding: 0;
}
.w-slider {
 width:310px;
 height:265px;
 margin:100px auto;
 overflow: hidden;
 position: relative;
}
.slider {
 width:310px;
 height:220px;

}
.slider-main {
 width:620px;
 height:220px;
}
.slider-main-img{
 width:310px;
 height:220px;
 position:absolute;
 top:0;
 left:0;
}
.slider-main-img img{
 vertical-align: top;
}
.slider-ctrl {
 width:310px;
 height:45px;
 text-align:center;
}
.slider-ctrl span {
 cursor: pointer;
}
.slider-ctrl-con {
 display:inline-block;
 width:24px;
 height:20px;
 margin-right:8px;
 text-indent: -20em;
 overflow:hidden;
 background:url(../images/icon.png)-24px -782px no-repeat;
}
.slider-ctrl .current {
 background:url(../images/icon.png)-24px -762px no-repeat;
}
.slider-ctrl-pre,
.slider-ctrl-next {
 width:27px;
 height:38px;
 position:absolute;
 top:50%;
 margin-top:-36px;
 opacity:0.7;
 filter:alpha(opacity=50);
}
.slider-ctrl-pre {
 background:url(../images/icon.png)6px 1px no-repeat;
 left:0;
}
.slider-ctrl-next {
 background:url(../images/icon.png)-9px -44px no-repeat;
 right:0;
}

五、JS部

/**
 * Created by 15623544233 on 2016/10/17.
 */
window.onload=function () {
 //imgs的DOM對象
 var slider_main_block =$("slider_main_block");
 var sliderImgs =slider_main_block.children;
 //最外層的slider大盒子
 var sider_box =slider_main_block.parentNode.parentNode;
 //slider-ctrl的DOM對象
 var slider_ctrl = $("slider_ctrl");
 var sliderCtrls =slider_ctrl.children;
 //動態(tài)添加Ctrl
 for(var i=0;i<sliderImgs.length;i++){
 var spans = document.createElement("span");
 spans.className="slider-ctrl-con";
 //span中的數(shù)字為當(dāng)前的索引,后面有重要作用
 spans.innerHTML =sliderImgs.length-i;
 slider_ctrl.insertBefore(spans,sliderCtrls[1]);
 }

 sliderCtrls[1].setAttribute("class","current slider-ctrl-con");
 //imgW ---圖片寬
 var imgW = sliderImgs[0].clientWidth;
 //讓除第一張圖以外的所有圖右移
 for(var i=1;i<sliderImgs.length;i++){
 sliderImgs[i].style.left=imgW+"px";
 }
//至關(guān)重要的標(biāo)志位,currentId 當(dāng)前出現(xiàn)的盒子  
 var currentId = 0;
 for(var key in sliderCtrls){
 sliderCtrls[key].onclick =function () {
  //左箭頭點(diǎn)擊的運(yùn)動動畫 
  if(this.className=="slider-ctrl-pre"){
  //與左移動參數(shù)相反
  animate(sliderImgs[currentId],{left:imgW});
  --currentId<0?currentId=sliderImgs.length-1:currentId;
  sliderImgs[currentId].style.left=-imgW+"px";
  animate(sliderImgs[currentId],{left:0});
  //右箭頭的運(yùn)動動畫,與自動輪播的運(yùn)動動畫一致
  }else if(this.className=="slider-ctrl-next"){
  autoPlay();
  }else{
  //得到當(dāng)前要點(diǎn)擊的圖片索引號
  var that = this.innerHTML-1;
  if(that>currentId){
   //像點(diǎn)擊右側(cè)按鈕一樣播放
   animate(sliderImgs[currentId],{left:-imgW});
   sliderImgs[that].style.left=imgW+"px";

  }else if(that<currentId){
   animate(sliderImgs[currentId],{left:imgW});
   sliderImgs[that].style.left=-imgW+"px";

  }
  /*當(dāng)點(diǎn)擊按鈕后,當(dāng)前圖片currentId移動后,所點(diǎn)擊的盒子成為當(dāng)前的圖片,使圖片連續(xù)*/
  currentId =that;
  animate(sliderImgs[currentId],{left:0});

  }
  flashCurrent((currentId+1));
 };

 }
 //小方塊控制slider動畫的函數(shù)
 function flashCurrent(index) {
 //console.log(index);
 for(var i=1;i<sliderCtrls.length-1;i++){
  sliderCtrls[i].setAttribute("class","slider-ctrl-con");
 }
 sliderCtrls[index].setAttribute("class","current slider-ctrl-con");
 }
 //添加定時(shí)器
 var timer =null;
 timer =setInterval(autoPlay,2000);
 function autoPlay() {
 animate(sliderImgs[currentId],{left:-imgW});
 //當(dāng)?shù)?張左移走后,6>5,第0張回到框中
 ++currentId>sliderImgs.length-1?currentId = 0:currentId;
 //上一張圖片左移后,下一張圖片快速到右邊
 sliderImgs[currentId].style.left=imgW+"px";
 //下張右側(cè)圖片左移
 animate(sliderImgs[currentId],{left:0});
 }
 sider_box.onmouseover =function () {
 clearInterval(timer);
 }
 sider_box.onmouseout=function () {
 timer =setInterval(autoPlay,2000);
 }

};
function $(id) {
 return document.getElementById(id);
}
 /*當(dāng)前樣式屬性值的獲取 */
function curStyle(obj,attr){
 if(obj.currentStyle){
//IE瀏覽器 
 return obj.currentStyle[attr];
 }else{
 //標(biāo)準(zhǔn)瀏覽器 
 return window.getComputedStyle(obj,null)[attr];
 }
}
 /*封裝的運(yùn)動框架*/
/*obj ----做動畫的DOM對象 ;json----變化的部分是json數(shù)據(jù) */   
function animate(obj,json) {
//調(diào)用時(shí)先清定時(shí)器  
 clearInterval(obj.timer);
//定時(shí)器為obj的內(nèi)部定時(shí)器,不用每次調(diào)用都創(chuàng)建一個新的定時(shí)器  
 obj.timer = setInterval(function () {
//遍歷json數(shù)據(jù),每次遍歷的標(biāo)志位為flag  
 var flag=true;
//遍歷json數(shù)據(jù),eg:{left:20,top:40,opacity:50,z-index:3}  
 for(var key in json){
  //取得盒子運(yùn)動當(dāng)前的位置
  var current= 0;
  if(key=="opacity"){
  //Ie6,7,8沒有設(shè)置透明度,默認(rèn)為undefined
  current =Math.round(parseInt(curStyle(obj,key)*100))||1;
  //console.log(current);
  }else{
  current= parseInt(curStyle(obj,key));
  }

//運(yùn)動步長:(目標(biāo)位置-當(dāng)前位置)/10
  var step = (json[key]-current)/10;
  step = step>0?Math.ceil(step):Math.floor(step);
//各屬性值的漸變動畫  
  if(key=="opacity"){
  if("opacity" in obj.style){
   obj.style.opacity = (current+step)/100;
  }else{
   //兼容ie6,7,8
   obj.style.filter ="alpha(opacity ="+(current+step)*10+")";
  }
  }else if(key=="zIndex"){
  obj.style[key] =json[key];
  }else
  {
  obj.style[key] = current+step+"px";
  }

//遍歷每個屬性時(shí)都判斷標(biāo)志位
  if(current!=json[key]){
  flag =false;
  }
 }遍歷結(jié)束后,標(biāo)志位都為true,判斷起所有動畫執(zhí)行完畢,清除定時(shí)器
 if(flag){
  clearInterval(obj.timer);
 }
 },20)

}

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

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

相關(guān)文章

  • Bootstrap中的表單驗(yàn)證插件bootstrapValidator使用方法整理(推薦)

    Bootstrap中的表單驗(yàn)證插件bootstrapValidator使用方法整理(推薦)

    這篇文章主要介紹了Bootstrap中的表單驗(yàn)證插件bootstrapValidator使用方法整理(推薦)的相關(guān)資料,非常不錯,具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06
  • bootstrap模態(tài)框彈出和隱藏,動態(tài)改變中間內(nèi)容的實(shí)例

    bootstrap模態(tài)框彈出和隱藏,動態(tài)改變中間內(nèi)容的實(shí)例

    今天小編就為大家分享一篇bootstrap模態(tài)框彈出和隱藏,動態(tài)改變中間內(nèi)容的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • js實(shí)現(xiàn)圖片上傳即時(shí)顯示效果

    js實(shí)現(xiàn)圖片上傳即時(shí)顯示效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)圖片上傳即時(shí)顯示效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 完美實(shí)現(xiàn)js選項(xiàng)卡切換效果(一)

    完美實(shí)現(xiàn)js選項(xiàng)卡切換效果(一)

    這篇文章主要為大家詳細(xì)介紹如何完美實(shí)現(xiàn)js選項(xiàng)卡切換效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • H5 js點(diǎn)擊按鈕復(fù)制文本到粘貼板

    H5 js點(diǎn)擊按鈕復(fù)制文本到粘貼板

    這篇文章主要為大家詳細(xì)介紹了H5 js點(diǎn)擊按鈕復(fù)制文本到粘貼板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • JS如何判斷json是否為空

    JS如何判斷json是否為空

    本文重點(diǎn)給大家介紹js判斷json對象是否為空的知識,非常不錯,具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-07-07
  • JavaScript 判斷數(shù)據(jù)類型的4種方法

    JavaScript 判斷數(shù)據(jù)類型的4種方法

    這篇文章主要介紹了JavaScript 判斷數(shù)據(jù)類型的4種方法,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下
    2020-09-09
  • Smartour 讓網(wǎng)頁導(dǎo)覽變得更簡單(推薦)

    Smartour 讓網(wǎng)頁導(dǎo)覽變得更簡單(推薦)

    這篇文章主要介紹了Smartour 讓網(wǎng)頁導(dǎo)覽變得更簡單(推薦),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • js實(shí)現(xiàn)簡單模態(tài)窗口,背景灰顯

    js實(shí)現(xiàn)簡單模態(tài)窗口,背景灰顯

    昨天中午做項(xiàng)目需要一個模態(tài)窗口,想起上一個公司的項(xiàng)目經(jīng)理曾經(jīng)做過一個比較牛的模態(tài)窗口,至今沒用搞清楚實(shí)現(xiàn)原理,平時(shí)也沒有時(shí)間去分析,試著自己做了一個,用了一天的時(shí)間終于完成了,給大家一起分享, 也希望高手多提意見。第一次在博客園上發(fā)文章,挺高興的。
    2008-11-11
  • 小程序登錄/注冊頁面設(shè)計(jì)的實(shí)現(xiàn)代碼

    小程序登錄/注冊頁面設(shè)計(jì)的實(shí)現(xiàn)代碼

    這篇文章主要介紹了小程序登錄/注冊頁面設(shè)計(jì)的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05

最新評論