JS實現(xiàn)輪播圖效果
本文實例為大家分享了JS實現(xiàn)輪播圖展示的具體代碼,供大家參考,具體內(nèi)容如下
原理介紹
1.html
<div id="swiper-container" class="swiper-container" onmouseenter="swiperImg()" onmouseleave="stopSwiper()"> <div id="img-list" style="left:0px;"> <img src="img/swiper1.png" alt="1"> <img src="img/swiper2.png" alt="2"> <img src="img/swiper1.png" alt="1"> <img src="img/swiper2.png" alt="2"> </div> <div id="swiper-btn"> <span index="1" class="on"></span> <span index="2"></span> </div> </div>
布局很簡單,利用一個class="swiper-container"的div,包裹圖片列表,swiper-btn是按鈕
2. css
* { margin: 0; padding: 0; } a { text-decoration: none; } .swiper-container { position: relative; width: 300px; height: 300px; margin: 0 auto; border: 1px solid; overflow: hidden; } #img-list { position: absolute; width: 1200px; height: 300px; } #img-list img { float: left; } #swiper-btn { position: absolute; bottom: 5%; left: 45%; } #swiper-btn span { display: inline-block; width: 10px; height: 10px; border-radius: 5px; } .on { background-color: goldenrod; } span { background-color: #d7d7d7; }
3.js
var timer; var div = document.getElementById('img-list'); var span = document.getElementById('swiper-btn').getElementsByTagName('span'); var offset = -300; var index = 1; function swiperImg() { timer = setInterval(() => { var left = parseInt(div.style.left); var newLeft = left + offset; if (newLeft <= -1200) { div.style.left = '0px'; } else { div.style.left = newLeft + 'px'; } showBtn(parseInt(div.style.left)); }, 3000); } function showBtn(left) { if (left == 0 || left == -600) { span[0].className = "on"; span[1].className = ""; } else { span[0].className = ""; span[1].className = "on"; } } function stopSwiper() { clearInterval(timer); } for (var i = 0; i < span.length; i++) { span[i].onclick = function () { if (this.className == "on") { return false; } var myIndex = parseInt(this.getAttribute("index")); if (myIndex == 1) div.style.left = 0 + 'px'; if (myIndex == 2) div.style.left = -300 + 'px'; index = myIndex; showButton(); } } function showButton() { for (var i = 0; i < span.length; i++) { //全部取消掉on樣式 if (span[i].className == "on") { span[i].className = ""; break; } } span[index - 1].className = "on"; }
效果如下所示:
更多關(guān)于輪播圖效果的專題,請點擊下方鏈接查看學(xué)習(xí)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript中數(shù)組的排序、亂序和搜索實現(xiàn)代碼
JavaScript中實現(xiàn)數(shù)組的排序、亂序和搜索,其實所有這些功能,用一個sort()就可以完成了2011-11-11js 替換功能函數(shù),用正則表達式解決,js的全部替換
js 替換功能函數(shù),用正則表達式解決,js的全部替換,學(xué)習(xí)js的朋友可以參考下。2010-12-12JS(JQuery)操作Array的相關(guān)方法介紹
本篇文章主要是對JS(JQuery)操作Array的相關(guān)方法進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02jquery form表單獲取內(nèi)容以及綁定數(shù)據(jù)
這篇文章主要介紹了jquery form表單獲取內(nèi)容以及form表單綁定數(shù)據(jù),獲取表單的數(shù)據(jù)保存到數(shù)據(jù)庫,或者將數(shù)據(jù)綁定到form表單,感興趣的小伙伴們可以參考一下2016-02-02js彈出層包含flash 不能關(guān)閉隱藏的2種處理方法
js彈出層包含flash 不能關(guān)閉隱藏的2種處理方法,需要的朋友可以參考一下2013-06-06Webpack設(shè)置環(huán)境變量的一些誤區(qū)詳解
這篇文章主要給大家介紹了關(guān)于Webpack設(shè)置環(huán)境變量的一些誤區(qū),文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Webpack具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12