javascript實現(xiàn)圖片輪播效果
本文實例介紹了javascript實現(xiàn)圖片輪播效果的詳細(xì)代碼,分享給大家供大家參考,具體內(nèi)容如下
效果圖:
具體代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> *{ margin: 0; padding: 0; } .wrap{ width: 510px; margin: 0 auto; overflow: hidden; position: relative; } .caktye{ width: 9999px; overflow: hidden; position: relative; left: 0; } .main{ text-align: center; position: absolute; bottom: 10px; /*border: 1px solid red;*/ left: 35%; } .main button{ width: 25px; height: 25px; text-align: center; line-height: 25px; border-radius: 25px; display: inline-block; border: none; } .active{ background-color: yellow; } .caktye a{ float: left; } .caktye img { display: block; width:510px; } #prevBtn{ display: block; position: absolute; left: 5px; bottom: 45%; width: 15px; height: 15px; /*overflow: hidden;*/ border-left: 5px solid ; border-top: 5px solid ; border-color: rgba(255,255,255,0.5); -webkit-transform: rotate(45deg); transform: rotate(-45deg); } #nextBtn{ display: block; position: absolute; right: 5px; bottom: 45%; width: 15px; height: 15px; /*overflow: hidden;*/ border-right: 5px solid; border-top: 5px solid; -webkit-transform: rotate(45deg); transform: rotate(45deg); border-color: rgba(255,255,255,0.5); /*background-color: rgba(255,255,255,0.8);*/ } </style> </head> <body> <div class="wrap"> <div class="caktye" id="inner"> <a href="###"><img src="img/1.jpg"></a> <a href="###"><img src="img/2.jpg"></a> <a href="###"><img src="img/3.jpg"></a> <a href="###"><img src="img/4.jpg"></a> <a href="###"><img src="img/5.jpg"></a> <a href="###"><img src="img/1.jpg"></a> </div> <div class="main"> <button class="active">1</button> <button>2</button> <button>3</button> <button>4</button> <button>5</button> </div> <div> <a href="###" id="prevBtn"></a> <a href="###" id="nextBtn"></a> </div> </div> <script type="text/javascript"> var innerList = document.getElementById("inner"); var btnList = document.getElementsByTagName("button"); var perWidth = inner.children[0].offsetWidth; var prevBtn = document.getElementById("prevBtn"); var nextBtn = document.getElementById("nextBtn"); // var imgList = inner.getElementsByTagName("img"); // var perWidth = imgList[0].offsetWidth; var timer = 0; var timer1 = 0; var index =0; var runFlag = true; //設(shè)置一個動畫是否走完的標(biāo)志位 for(var i = 0; i < btnList.length; i++) { btnList[i].index = i; btnList[i].onclick = function() { index = this.index; tab(); } } function tab() { var start = inner.offsetLeft; var end = - perWidth * index; var change = end - start; var t = 0; var maxT = 30; clearInterval(timer1); timer1 = setInterval(function() { t++; if(t >= maxT) { clearInterval(timer1); // alert("停下來了"); runFlag = true; } inner.style.left = change/maxT * t + start + "px"; if(index == btnList.length && t >= maxT) { inner.style.left = 0; } },30) // inner.style.left = - perWidth * index + "px"; for(var j = 0; j < btnList.length; j++) { btnList[j].className = ""; } if(index >= btnList.length) { btnList[0].className = "active"; }else { btnList[index].className = "active"; } } function xunhuan(){ index++; if(index>btnList.length){ index=1; } // inner.style.left = - perWidth * index + "px"; tab(); } var timer =setInterval(xunhuan,5000); inner.onmouseover =function(){ clearInterval(timer); } inner.onmouseout =function(){ timer = setInterval(xunhuan,5000); } function next() { index++; if(index > btnList.length) { index = 1; } tab(); } function prev() { index--; if(index < 0 ) { index = btnList.length - 1; inner.style.left = - btnList.length * perWidth + "px"; console.log(index); } tab(); } //下一張 nextBtn.onclick = function() { clearInterval(timer); if(runFlag) { next(); } runFlag = false; } //上一張 prevBtn.onclick = function() { clearInterval(timer); if(runFlag) { prev(); } runFlag = false; } </script> </body> </html>
希望本文所述對大家學(xué)習(xí)javascript程序設(shè)計有所幫助。
相關(guān)文章
如何使用Bootstrap的modal組件自定義alert,confirm和modal對話框
本文我將為大家介紹Bootstrap中的彈出窗口組件Modal,此組件簡單易用,效果大氣漂亮且很實用,感興趣的朋友一起學(xué)習(xí)吧2016-03-03微信小程序MUI導(dǎo)航欄透明漸變功能示例(通過改變opacity實現(xiàn))
這篇文章主要介紹了微信小程序MUI導(dǎo)航欄透明漸變功能,結(jié)合實例形式分析了通過改變opacity實現(xiàn)透明度漸變功能相關(guān)操作技巧,需要的朋友可以參考下2019-01-01Javascript數(shù)組方法reduce的妙用之處分享
這篇文章主要給大家介紹了關(guān)于Javascript數(shù)組方法reduce的妙用之處,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Javascript具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06uniapp組件傳值的方法(父傳子,子傳父,對象傳值)實戰(zhàn)案例
現(xiàn)在的前端開發(fā)中基本上都是組件化開發(fā)的,下面這篇文章主要給大家介紹了關(guān)于uniapp組件傳值(父傳子,子傳父,對象傳值)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03JavaScript語言中的Literal Syntax特性分析
JavaScript語言中的Literal Syntax特性分析...2007-03-03javascript實現(xiàn)的淘寶旅行通用日歷組件用法實例
這篇文章主要介紹了javascript實現(xiàn)的淘寶旅行通用日歷組件,以實例形式分析了該日歷組件的相關(guān)設(shè)置及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08JavaScript undefined及null區(qū)別實例解析
這篇文章主要介紹了JavaScript undefined及null區(qū)別實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07