最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

二、分析布局

主盒子里分上下兩個小盒子(1和2)。
包含圖片的盒子占兩張圖片的寬(3),處于上盒子中,當前圖片在上盒子(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ù)字為當前的索引,后面有重要作用
 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)重要的標志位,currentId 當前出現(xiàn)的盒子  
 var currentId = 0;
 for(var key in sliderCtrls){
 sliderCtrls[key].onclick =function () {
  //左箭頭點擊的運動動畫 
  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});
  //右箭頭的運動動畫,與自動輪播的運動動畫一致
  }else if(this.className=="slider-ctrl-next"){
  autoPlay();
  }else{
  //得到當前要點擊的圖片索引號
  var that = this.innerHTML-1;
  if(that>currentId){
   //像點擊右側(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";

  }
  /*當點擊按鈕后,當前圖片currentId移動后,所點擊的盒子成為當前的圖片,使圖片連續(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");
 }
 //添加定時器
 var timer =null;
 timer =setInterval(autoPlay,2000);
 function autoPlay() {
 animate(sliderImgs[currentId],{left:-imgW});
 //當?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);
}
 /*當前樣式屬性值的獲取 */
function curStyle(obj,attr){
 if(obj.currentStyle){
//IE瀏覽器 
 return obj.currentStyle[attr];
 }else{
 //標準瀏覽器 
 return window.getComputedStyle(obj,null)[attr];
 }
}
 /*封裝的運動框架*/
/*obj ----做動畫的DOM對象 ;json----變化的部分是json數(shù)據(jù) */   
function animate(obj,json) {
//調(diào)用時先清定時器  
 clearInterval(obj.timer);
//定時器為obj的內(nèi)部定時器,不用每次調(diào)用都創(chuàng)建一個新的定時器  
 obj.timer = setInterval(function () {
//遍歷json數(shù)據(jù),每次遍歷的標志位為flag  
 var flag=true;
//遍歷json數(shù)據(jù),eg:{left:20,top:40,opacity:50,z-index:3}  
 for(var key in json){
  //取得盒子運動當前的位置
  var current= 0;
  if(key=="opacity"){
  //Ie6,7,8沒有設置透明度,默認為undefined
  current =Math.round(parseInt(curStyle(obj,key)*100))||1;
  //console.log(current);
  }else{
  current= parseInt(curStyle(obj,key));
  }

//運動步長:(目標位置-當前位置)/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";
  }

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

}

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

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

相關(guān)文章

  • JavaScript下利用fso判斷文件是否存在的代碼

    JavaScript下利用fso判斷文件是否存在的代碼

    JavaScript下利用fso判斷文件是否存在的代碼,需要的朋友可以參考下,這個一般需要運行確認的。
    2010-12-12
  • JavaScript實現(xiàn)可拖拽的進度條

    JavaScript實現(xiàn)可拖拽的進度條

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)可拖拽的進度條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • javascript實現(xiàn)移動端上的觸屏拖拽功能

    javascript實現(xiàn)移動端上的觸屏拖拽功能

    這篇文章主要為大家詳細介紹了基于javascript實現(xiàn)移動端上的觸屏拖拽功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • js位運算在實際中使用的實例教程

    js位運算在實際中使用的實例教程

    我們可能很少在編程中用位運算,如果沒深入學習,可能也很難理解,下面這篇文章主要給大家介紹了關(guān)于js位運算在實際中使用的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 一文幫你理解PReact10.5.13源碼

    一文幫你理解PReact10.5.13源碼

    這篇文章主要介紹了一文幫你理解PReact10.5.13源碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • JavaScript Date 知識淺析

    JavaScript Date 知識淺析

    這篇文章主要介紹了JavaScript Date 知識,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-01-01
  • js實現(xiàn)網(wǎng)站首頁圖片滾動顯示

    js實現(xiàn)網(wǎng)站首頁圖片滾動顯示

    網(wǎng)站首頁圖片滾動顯示對于很多朋友都有很大的吸引,因為它可以帶來意想不到視覺沖擊效果,接下來本文也實現(xiàn)一下,感興趣的朋友可以參考下,或許對你學習js知識有所幫助
    2013-02-02
  • js?實現(xiàn)div拖拽拉伸完整示例

    js?實現(xiàn)div拖拽拉伸完整示例

    這篇文章主要為大家介紹了js?實現(xiàn)div拖拽拉伸完整示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • JavaScript第七種數(shù)據(jù)類型Symbol的用法詳解

    JavaScript第七種數(shù)據(jù)類型Symbol的用法詳解

    Symbol是ES6中引入的一種新的基本數(shù)據(jù)類型,用于表示一個獨一無二的值。它是JavaScript中的第七種數(shù)據(jù)類型。本文將詳細講講Symbol的使用,需要的可以參考一下
    2022-09-09
  • js控制table合并具體實現(xiàn)

    js控制table合并具體實現(xiàn)

    這篇文章主要介紹了js控制table合并的具體實現(xiàn),需要的朋友可以參考下
    2014-02-02

最新評論

视频| 朔州市| 大理市| 固始县| 招远市| 南漳县| 福泉市| 郯城县| 济源市| 潢川县| 临邑县| 江阴市| 大城县| 伽师县| 湖南省| 花垣县| 苍山县| 阜平县| 晋州市| 谢通门县| 太仓市| 辽阳县| 高雄县| 卢氏县| 奈曼旗| 桃源县| 西乌| 义乌市| 商洛市| 石楼县| 武宣县| 井陉县| 大同市| 井研县| 宕昌县| 德安县| 陇西县| 武强县| 方正县| 浑源县| 阜宁县|