国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery輪播圖實例詳解

2019-11-19 13:15:03
字體:
來源:轉載
供稿:網友

本文實例為大家分享了jQuery輪播圖實例的具體代碼,供大家參考,具體內容如下

1、html+css+js代碼

<!DOCTYPE html><html><head> <title></title> <style type="text/css">  *{   margin: 0;   padding: 0;   text-decoration: none;  }  body{   padding: 20px;  }  #container{   min-width: 1000px;   /*width: 1300px;*/   height: 400px;   overflow: hidden;   position: relative;   margin: 0 auto;  }  #list{   /*width: 9100px;*/   height: 400px;   position: absolute;   z-index: 1;   top:0;   left: 0;   overflow: hidden;  }  #list img{   float: left;   /*width: 1300px;*/   height: 400px;  }  #buttons{   position: absolute;   height: 10px;   width: 100px;   z-index: 2;   bottom: 20px;   left: 660px;   text-align: center;  }  #buttons span{   cursor: pointer;   float: left;   width: 10px;   height: 10px;   margin-right: 9px;   display: inline-block;   background-image: url(img/_eb1b95e.png);   background-position: -1079px -687px;  }  #buttons .on{   background-position: -1049px -687px;  }  .arrow{   cursor: pointer;   display: none;   width: 36px;   height: 76px;   position: absolute;   z-index: 2;   top: 180px;   background-color: rgba(0,0,0,.3);   color: #fff;  }  #container:hover .arrow{   display: block;  }  #prev{   background: url(img/_eb1b95e.png);   background-position: -569px -491px;   left: 20px;  }  #next{   background: url(img/_eb1b95e.png);   background-position: -513px -491px;   right: 20px;  } </style></head><body> <div id="container">  <div id="list" >   <img src="img/5.jpg" alt="1"/>   <img src="img/1.jpg" alt="1"/>   <img src="img/2.jpg" alt="2"/>   <img src="img/3.jpg" alt="3"/>   <img src="img/4.jpg" alt="4"/>   <img src="img/5.jpg" alt="5"/>   <img src="img/1.jpg" alt="5"/>  </div>  <div id="buttons">   <span index="1" class="on"></span>   <span index="2"></span>   <span index="3"></span>   <span index="4"></span>   <span index="5"></span>  </div>  <a href="javascript:;" id="prev" class="arrow"></a>  <a href="javascript:;" id="next" class="arrow"></a> </div><script type="text/javascript" src="js/jquery.1.10.2.js"></script><script type="text/javascript">  var container = $("#container");  var list = $("#list");  var listimg = $("#list img");   var buttons = $("#buttons span");  var prev = $("#prev");  var next = $("#next");  var index = 1;  var len = 5;  var num =len+2;  var interval = 3000;//變換周期  var timer;   var clientwidth=document.documentElement.clientWidth;//屏幕的寬度  var conwidth = parseInt(clientwidth)-100;//顯示界面的寬度 $(function(){  setwidth();//設置container的寬度以及里面元素list和list中img的寬度  function animate(offset){   var left = parseInt(list.css("left"))+offset;   // list.animate({left:left+'px'},'normal');   list.animate({left:left+'px'},conwidth,function(){    //第一位規定產生動畫效果的樣式,第二位設置速度,第三位是動畫函數執行完后執行的函數    if (left > -conwidth) {//如果是第一個元素還向前移,就讓最后一個元素是這個元素     list.css('left',-conwidth*len);    }    if (left < (-conwidth*len)) {//如果是最后一個元素還向后移,就讓第一個元素是這個元素     list.css('left', -conwidth);    }   });  }  function showbutton(){//通過操作css來將顯示的圖片代表的下方原點變大,其余變小   buttons.eq(index-1).addClass('on').siblings().removeClass('on');  }  function play(){   timer = setTimeout(function(){    next.trigger('click');//trigger()方法觸發被選元素的指定事件類型。    play();   },interval);  }  function stop(){   clearTimeout(timer);  }  next.bind('click',function(){   if (list.is(':animated')) {    return;   }   if (index == 5) {    index = 1;   }   else{    index++;   }   animate(-conwidth);   showbutton();  });  prev.bind('click',function(){   if (list.is(':animated')) {    return;   }   if (index == 1) {    index = 5;   }   else{    index--;   }   animate(conwidth);   showbutton();  });  buttons.each(function(){   $(this).bind('click',function(){    if (list.is(':animated') || $(this).attr('class')=='on') {     return;    }    var myindex = parseInt($(this).attr('index'));    var offset = -conwidth*(myindex - index);    animate(offset);    index = myindex;    showbutton();   })  });  container.hover(stop,play);//鼠標懸停時執行stop()函數,移開時執行play()  play(); });  function setwidth(){//設置container的寬度以及里面元素list和list中img的寬度   container[0].style.width = conwidth +'px' ;   list[0].style.width = num*conwidth +'px';   list[0].style.left = '-'+conwidth +'px';   for (var i = 0; i < listimg.length; i++) {    listimg[i].style.width = conwidth + 'px';   }  }</script></body></html>

2、實現思路

輪播圖的功能可分為:自動循環播放,點擊左邊按鈕顯示前面圖片,點擊后邊顯示后面圖片,點擊下方的小圓點實現跳轉播放。

1.自動播放功能:設置一個定時器,每隔一個周期的時間,觸發一次點擊右邊按鈕的函數功能。
2.點擊左邊按鈕顯示前面圖片:首先我們應該了解到輪播圖的原理。圖解

大盒子是container,小盒子是list,list里面有很多圖片,沒有間隔的排列在一行,用絕對定位來操縱每次可以看到的圖片,也就是定位在container里面的是可見部分。當點擊左邊的按鈕時,前面的圖片右移,相當于絕對定位中的left值加一個圖片的寬度。

3.點擊右邊按鈕顯示后面圖片:原理和左邊的相同,相當于圖片左移,讓后面的圖片顯示出來。
4.點擊下方的小圓點實現跳轉播放:此時頁面是第二個圖片,要跳轉到第五個,相當于點擊了三次右邊的按鈕,也相當于圖片左移三個圖片的寬度。

3、需要掌握的知識點:

css:

絕對定位

js+jq:

document.documentElement.clientWidth;obj.animate();obj.css();obj.eq()obj.addClass();obj.siblings();obj.removeClass();setTimeout();clearTimeout();obj.trigger();obj.attr();obj.bind();

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泾川县| 松潘县| 策勒县| 三台县| 金昌市| 景德镇市| 陈巴尔虎旗| 长丰县| 井研县| 共和县| 伊金霍洛旗| 大竹县| 包头市| 吉木萨尔县| 麻城市| 红桥区| 四子王旗| 讷河市| 博野县| 闽清县| 焉耆| 叙永县| 托克逊县| 乌拉特后旗| 特克斯县| 新宾| 滦平县| 呼和浩特市| 黄大仙区| 台南市| 贵德县| 柳州市| 宣威市| 安康市| 青川县| 白水县| 泰顺县| 儋州市| 天长市| 隆林| 辽阳市|