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

首頁 > 語言 > JavaScript > 正文

jquery實現定時自動輪播特效

2024-05-06 16:26:01
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了jquery實現定時自動輪播特效,講解內容很詳細,條理清晰,具有一定的參考價值,感興趣的小伙伴們可以參考一下
 

這次的輪播圖是在上一篇文章jQuery手動點擊實現圖片輪播特效的基礎上寫出來的,也就是本次展示的是手動點擊輪播效果以及定時自動輪播效果的程序,建議想連貫學習的小伙伴把我之前的文章看一看,看完后再看這篇文章~~~~

下面來看看我做的最終定時自動輪播效果以及手動點擊輪播效果:

 jquery實現定時自動輪播特效

對于上面的展示動畫速度比較快的原因是因為我的截圖軟件是綠色版,免費的~~~你們懂得,就是卡卡的,真正的效果比這個速度慢,而且還是勻速,可以商用~~~所以上面的展示動畫只能當做完成效果的參考。
一、主體程序

<!DOCTYPE html><html> <head>  <meta charset="utf-8" />  <title>輪播圖①(手動點擊輪播)</title>  <link type="text/css" rel="stylesheet" href="css/layout.css" /> </head> <body>  <div class="slideShow">   <!--圖片布局開始-->   <ul>    <li><a href="#"><img src="img/picture01.jpg" /></a></li>    <li><a href="#"><img src="img/picture02.jpg" /></a></li>    <li><a href="#"><img src="img/picture03.jpg" /></a></li>    <li><a href="#"><img src="img/picture04.jpg" /></a></li>   </ul>   <!--圖片布局結束-->      <!--按鈕布局開始-->   <div class="showNav">    <span class="active">1</span>    <span>2</span>    <span>3</span>    <span>4</span>   </div>   <!--按鈕布局結束-->  </div>  <script src="js/jquery-1.11.3.js"></script>  <script src="js/layout.js"></script> </body></html>

額,上面的主體程序和前一篇沒有區別,未做任何修改~~~~~感興趣的可以查看第一篇文章,我本次隨筆重點會在Jquery程序里面
二、CSS樣式

*{ margin: 0; padding: 0;}ul{ list-style: none;}.slideShow{ width: 346px; height: 210px;  /*其實就是圖片的高度*/ border: 1px #eeeeee solid; margin: 100px auto; position: relative; overflow: hidden; /*此處需要將溢出框架的圖片部分隱藏*/}.slideShow ul{ width: 2000px; position: relative;  /*此處需注意relative : 對象不可層疊,但將依據left,right,top,bottom等屬性在正常文檔流中偏移位置,如果沒有這個屬性,圖片將不可左右移動*/}.slideShow ul li{ float: left;  /*讓四張圖片左浮動,形成并排的橫著布局,方便點擊按鈕時的左移動*/ width: 346px;}.slideShow .showNav{  /*用絕對定位給數字按鈕進行布局*/ position: absolute; right: 10px; bottom: 5px; text-align:center; font-size: 12px;  line-height: 20px;}.slideShow .showNav span{ cursor: pointer; display: block; float: left; width: 20px; height: 20px; background: #ff5a28; margin-left: 2px; color: #fff;}.slideShow .showNav .active{ background: #b63e1a;}

三、jQuery程序
首先說一下定時自動輪播的原理:
1、首先得開一個定時器,假設定時器的時間設置為2000ms,也就是2S定時器執行一次操作
2、定時器每隔2S執行的操作就是模擬按次序點擊數字按鈕,也就是觸發click事件,讓圖片左移
先來看大體效果實現的jQuery代碼一:      

 var timer=null; //定時器返回值,主要用于關閉定時器  var iNow=0;  //iNow為正在展示的圖片索引值,當用戶打開網頁時首先顯示第一張圖,即索引值為0  timer=setInterval(function(){  //打開定時器   iNow++;       //讓圖片的索引值次序加1,這樣就可以實現順序輪播圖片   showNumber.eq(iNow).trigger("click"); //模擬觸發數字按鈕的click事件  },2000); //2000為輪播的時間

上面的程序可以實現每隔2S圖片的輪播效果,但是輪播到最后一張圖的時候會停止,因為沒有判斷iNow是否到達最后一張圖,所以有了下面的代碼二:  

var timer=null; //定時器返回值,主要用于關閉定時器  var iNow=0;  //iNow為正在展示的圖片索引值,當用戶打開網頁時首先顯示第一張圖,即索引值為0  timer=setInterval(function(){  //打開定時器   iNow++;       //讓圖片的索引值次序加1,這樣就可以實現順序輪播圖片   if(iNow>showNumber.length-1){ //當到達最后一張圖的時候,讓iNow賦值為第一張圖的索引值,輪播效果跳轉到第一張圖重新開始    iNow=0;   }   showNumber.eq(iNow).trigger("click"); //模擬觸發數字按鈕的click  },2000); //2000為輪播的時間

所以jQuery程序的完整代碼程序如下:

$(document).ready(function(){ var slideShow=$(".slideShow"),  //獲取最外層框架的名稱  ul=slideShow.find("ul"),    showNumber=slideShow.find(".showNav span"),//獲取按鈕  oneWidth=slideShow.find("ul li").eq(0).width(); //獲取每個圖片的寬度  var timer=null; //定時器返回值,主要用于關閉定時器  var iNow=0;  //iNow為正在展示的圖片索引值,當用戶打開網頁時首先顯示第一張圖,即索引值為0    showNumber.on("click",function(){   //為每個按鈕綁定一個點擊事件     $(this).addClass("active").siblings().removeClass("active"); //按鈕點擊時為這個按鈕添加高亮狀態,并且將其他按鈕高亮狀態去掉   var index=$(this).index(); //獲取哪個按鈕被點擊,也就是找到被點擊按鈕的索引值   ul.animate({    "left":-oneWidth*iNow, //注意此處用到left屬性,所以ul的樣式里面需要設置position: relative; 讓ul左移N個圖片大小的寬度,N根據被點擊的按鈕索引值index確定   })  });    timer=setInterval(function(){  //打開定時器   iNow++;       //讓圖片的索引值次序加1,這樣就可以實現順序輪播圖片   if(iNow>showNumber.length-1){ //當到達最后一張圖的時候,讓iNow賦值為第一張圖的索引值,輪播效果跳轉到第一張圖重新開始    iNow=0;   }   showNumber.eq(iNow).trigger("click"); //模擬觸發數字按鈕的click  },2000); //2000為輪播的時間})

上面的注釋寫的很詳細了,主要是為了方便想學習的小伙伴看,但是實際上我寫程序不會注釋的那么詳細,都是很簡單的內容啦,看到這里你可能以為jQuery程序就完了,那就大錯特錯了,因為自動輪播效果是正確的,但是手動點擊時就會出錯,我特意做了一段Gif動畫展示出錯的效果:

jquery實現定時自動輪播特效

看到上面的效果你就會忽然大悟,圖片自動輪播時,你就算點擊按鈕它也只是附和你一下,跳轉到你點擊的按鈕,但是僅僅持續一會還是按它輪播的次序,不理會你點擊的按鈕后應該走的輪播次序,至于原因嘛

是因為手動點擊時index的值未賦值給定時器的圖片索引iNow,這樣iNow就無法存儲你點擊的按鈕索引值,也就是不知道你點擊的哪個按鈕,既然知道了原因,那么下面就需要進行修改了。

修改完成后的jQuery程序最終版就是:

$(document).ready(function(){ var slideShow=$(".slideShow"),  //獲取最外層框架的名稱  ul=slideShow.find("ul"),    showNumber=slideShow.find(".showNav span"),//獲取按鈕  oneWidth=slideShow.find("ul li").eq(0).width(); //獲取每個圖片的寬度  var timer=null; //定時器返回值,主要用于關閉定時器  var iNow=0;  //iNow為正在展示的圖片索引值,當用戶打開網頁時首先顯示第一張圖,即索引值為0    showNumber.on("click",function(){   //為每個按鈕綁定一個點擊事件     $(this).addClass("active").siblings().removeClass("active"); //按鈕點擊時為這個按鈕添加高亮狀態,并且將其他按鈕高亮狀態去掉   var index=$(this).index(); //獲取哪個按鈕被點擊,也就是找到被點擊按鈕的索引值   iNow=index;   ul.animate({    "left":-oneWidth*iNow, //注意此處用到left屬性,所以ul的樣式里面需要設置position: relative; 讓ul左移N個圖片大小的寬度,N根據被點擊的按鈕索引值iNOWx確定   })  });    timer=setInterval(function(){  //打開定時器   iNow++;       //讓圖片的索引值次序加1,這樣就可以實現順序輪播圖片   if(iNow>showNumber.length-1){ //當到達最后一張圖的時候,讓iNow賦值為第一張圖的索引值,輪播效果跳轉到第一張圖重新開始    iNow=0;   }   showNumber.eq(iNow).trigger("click"); //模擬觸發數字按鈕的click  },2000); //2000為輪播的時間})

以上就是本文的全部內容,下次就為大家分享鼠標懸浮在輪播圖上方時圖片停止輪播,鼠標移走后圖片接著進行輪播的代碼,不要走開。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 汉阴县| 沁阳市| 布拖县| 错那县| 咸阳市| 万年县| 镇平县| 汉中市| 饶河县| 图片| 廊坊市| 武义县| 津市市| 双柏县| 南涧| 白水县| 镇平县| 基隆市| 军事| 五大连池市| 韩城市| 南汇区| 墨竹工卡县| 休宁县| 清丰县| 永福县| 长顺县| 青河县| 桐庐县| 景泰县| 鹤岗市| 翁源县| 遂溪县| 柳河县| 双辽市| 晴隆县| 扶沟县| 崇阳县| 凤山市| 凌源市| 鹤岗市|