JavaScript實(shí)現(xiàn)無限輪播效果
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)無限輪播效果的具體代碼,供大家參考,具體內(nèi)容如下
效果展示
原理
圖片說明原理
輪播順序:1–>2–>3–>4–>5–>1的副本–>2–>3–>4–>5–>1的副本–>2…一直循環(huán)
鼠標(biāo)進(jìn)入圖片時自動輪播暫停,離開后恢復(fù)
代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>無限輪播</title> <style> * { margin: 0; padding: 0; list-style: none; } img { vertical-align: top; } #slider { width: 520px; height: 280px; border: 1px solid #000; padding: 10px; margin: 100px auto; position: relative; } #top { width: 100%; height: 100%; position: relative; overflow: hidden; } #top ul { width: 3120px; height: 100%; position: absolute; left: 0; top: 0; } #top ul li { width: 520px; height: 280px; float: left; } #slider ol { position: absolute; right: 10px; bottom: 10px; } #slider ol li { width: 20px; height: 20px; background-color: darkgrey; display: inline-block; border-radius: 50%; margin-right: 3px; cursor: pointer; } #slider ol li.current { background-color: orangered; } </style> </head> <body> <div id="slider"> <div id="top"> <ul id="ul"> <li><img src="images/pic01.jpg" alt=""></li> <li><img src="images/pic02.jpg" alt=""></li> <li><img src="images/pic03.jpg" alt=""></li> <li><img src="images/pic04.jpg" alt=""></li> <li><img src="images/pic05.jpg" alt=""></li> </ul> </div> <ol id="ol"> </ol> </div> <script src="js/myFunc.js"></script> <script> window.onload = function () { // 1.獲取需要的標(biāo)簽 var lis = $("ul").children; // 6.自動輪播參數(shù)定義(圖片索引,圓點(diǎn)索引) var currentIndex = 0, indicatorIndex = 0; // 2.克隆li標(biāo)簽(將第一個li標(biāo)簽克隆一份到最后一個li標(biāo)簽后面) $("ul").appendChild(lis[0].cloneNode(true)); // 3.動態(tài)創(chuàng)建右下角的圓點(diǎn) for(var i=0; i<lis.length-1; i++){ // 因?yàn)榭寺×艘粋€li,所以需要減1 var li = document.createElement("li"); $("ol").appendChild(li); } // 4.第一個圓點(diǎn)選中 $("ol").children[0].className = "current"; // 5.監(jiān)聽鼠標(biāo)進(jìn)入圓點(diǎn) var olLis = $("ol").children; for(var j=0; j<olLis.length; j++){ (function (j) { // 閉包 // 5.1 獲取單獨(dú)的li標(biāo)簽 var li = olLis[j]; // 5.2 鼠標(biāo)進(jìn)入 li.onmouseover = function () { for(var i=0; i<olLis.length; i++){ // 排他思想 olLis[i].className = ""; } this.className = "current"; // 5.3 輪播圖動起來 constant($("ul"), -(520 * j), 60); // 6.1 currentIndex = indicatorIndex = j; } })(j) } // 7.自動輪播 var timer = setInterval(autoPlay, 1000); // 8.清除和設(shè)置定時器 $("slider").onmouseover = function () { clearInterval(timer); }; $("slider").onmouseout = function () { timer = setInterval(autoPlay, 1000); }; /** * 自動輪播函數(shù) */ function autoPlay() { // 7.1 ul 滾動起來 currentIndex++; if(currentIndex > lis.length-1){ $("ul").style.left = 0; currentIndex = 1; } constant($("ul"), -currentIndex * 520, 60); // 7.2 圓點(diǎn)滾動起來 indicatorIndex++; if(indicatorIndex > olLis.length-1){ indicatorIndex = 0; } for(var i=0; i<olLis.length; i++){ // 排他思想 olLis[i].className = ""; } olLis[indicatorIndex].className = "current"; } } </script> </body> </html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js 實(shí)現(xiàn)ajax發(fā)送步驟過程詳解
這篇文章主要介紹了js 實(shí)現(xiàn)ajax發(fā)送過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07setTimeout與setInterval的區(qū)別淺析
這篇文章主要給大家介紹了關(guān)于setTimeout與setInterval區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03JS實(shí)用的帶停頓的逐行文本循環(huán)滾動效果實(shí)例
下面小編就為大家?guī)硪黄狫S實(shí)用的帶停頓的逐行文本循環(huán)滾動效果實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11JavaScript?ECMAScript?6(ES2015~ES2022)所有新特性總結(jié)
這篇文章主要介紹了JavaScript?ECMAScript?6(ES2015~ES2022)所有新特性總結(jié),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07使用webpack搭建vue項(xiàng)目實(shí)現(xiàn)腳手架功能
這篇文章主要介紹了使用webpack搭建vue項(xiàng)目實(shí)現(xiàn)腳手架功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03利用 Chrome Dev Tools 進(jìn)行頁面性能分析的步驟說明(前端性能優(yōu)化)
這篇文章主要介紹了利用 Chrome Dev Tools 進(jìn)行頁面性能分析的步驟說明(前端性能優(yōu)化),本文給大家介紹的非常想詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02JavaScript實(shí)現(xiàn)前端網(wǎng)頁版倒計時
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)前端網(wǎng)頁版倒計時,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-03-03