原生JS無縫滑動輪播圖
本文實(shí)例為大家分享了原生JS無縫滑動輪播圖的具體實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> ul,div,img{ margin: 0; padding: 0; list-style: none; vertical-align: top; } #banner{ width: 400px; height: 300px; margin:50px auto; position: relative; overflow: hidden; } #banner ul{ width: 400px; position: absolute; } #banner li img{ width: 400px; height: 300px; text-align: center; line-height: 300px; font-size: 40px; } #dot{ height: 20px; position: absolute; left: calc(50% - 80px); bottom: 20px; } #dot i{ width: 14px; height: 14px; border-radius: 50%; background: #fff; float: left; margin: 0 10px; cursor: pointer; } #dot i.current{ background: rgb(161,1,34); } #pages{ height: 60px; width:100%; position: absolute; top: calc(50% - 30px); cursor: pointer; } #pages i{ width:30px; height: 60px; background: rgb(0,0,0); font-size: 22px; color: #fff; text-align: center; line-height: 60px; opacity: 0.5; font-style: normal; position: absolute; user-select: none; } #pages i.gt{ right:0; top: 0; font-size: 21px; } #pages i:hover{ opacity: 0.7; } </style> </head> <body> <div id="banner"> <ul id="ul"> <li><img src="images2/imgs (1).jpg" alt=""></li> <li><img src="images2/imgs (2).jpg" alt=""></li> <li><img src="images2/imgs (3).jpg" alt=""></li> <li><img src="images2/imgs (4).jpg" alt=""></li> <li><img src="images2/imgs (5).jpg" alt=""></li> <li><img src="images2/imgs (6).jpg" alt=""></li> <li><img src="images2/imgs (7).jpg" alt=""></li> <li><img src="images2/imgs (8).jpg" alt=""></li> </ul> <div id="dot"> </div> <div id="pages"> <i class="lt">^</i> <i class="gt">v</i> </div> </div> <script src="tool.js"></script> <script type="text/javascript"> var lis = $("li", $("#ul")), liHeight = lis[0].offsetHeight, len = lis.length; c = 1; n = 2; var first = lis[0].cloneNode(true), last = lis[len - 1].cloneNode(true); $("#ul").insertBefore(last, lis[0]); $("#ul").appendChild(first); var html = ""; for(var i = 0; i < len; i++) html += "<i></i>"; len += 2; $("#dot").innerHTML = html; $("#ul").style.height = liHeight * len + "px"; $("#ul").style.top = -liHeight + "px"; var dots = $("i", $("#dot")); dots[0].className = "current"; var tf = true; function move(){ var _top = -n * liHeight; animate($("#ul"), {top : _top}, 300, function(){ if(n >= len){ n = 2; c = 1; css($("#ul"), "top", -liHeight + "px"); }else if(n <= 1){ c = len - 2; n = len - 1; css($("#ul"), "top", c * -liHeight + "px"); } }); var dotIndex = n - 1; if(dotIndex === len - 2) dotIndex = 0; else if(dotIndex === -1) dotIndex = len -3; for(let i =0; i<dots.length; i ++) dots[i].className = ""; dots[dotIndex].className = "current"; c = n; n++; } var timer = setInterval(move, 3000); $("#banner").onmouseover = function(){ clearInterval(timer); } $("#banner").onmouseout = function(){ timer = setInterval(move, 3000); } on($("#dot"), "mouseover", function(e){ e = e || event; var src = e.target || e.srcElement; if(src.nodeName === "I"){ var index = Array.from($("i", this)).indexOf(src); n = index + 1; move(); } }) var timeout; on($("#pages"), "click",function(e){ clearTimeout(timeout); if(tf){ tf = false; e = e || event; var src = e.target || e.srcElement; if(src.className === "gt"){ n = c - 1; move(); }else if(src.className === "lt"){ move(); } } timeout = setTimeout(function(){ tf = true; },400) }) </script> </body> </html>
更多關(guān)于輪播圖效果的專題,請點(diǎn)擊下方鏈接查看學(xué)習(xí)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- js實(shí)現(xiàn)滑動輪播效果
- js原生實(shí)現(xiàn)移動端手指滑動輪播圖效果的示例
- js實(shí)現(xiàn)從左向右滑動式輪播圖效果
- JS實(shí)現(xiàn)自動輪播圖效果(自適應(yīng)屏幕寬度+手機(jī)觸屏滑動)
- JS實(shí)現(xiàn)touch 點(diǎn)擊滑動輪播實(shí)例代碼
- js實(shí)現(xiàn)固定寬高滑動輪播圖效果
- javascript經(jīng)典特效分享 手風(fēng)琴、輪播圖、圖片滑動
- js實(shí)現(xiàn)支持手機(jī)滑動切換的輪播圖片效果實(shí)例
- 原生js實(shí)現(xiàn)移動開發(fā)輪播圖、相冊滑動特效
- js實(shí)現(xiàn)上下滑動輪播
相關(guān)文章
基于PHP pthreads實(shí)現(xiàn)多線程代碼實(shí)例
這篇文章主要介紹了基于PHP pthreads實(shí)現(xiàn)多線程代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06JavaScript對象的創(chuàng)建模式與繼承模式示例講解
繼承機(jī)制是面向?qū)ο蟪绦蛟O(shè)計使代碼可以復(fù)用的最重要的手段,它允許程序員在保持原有的特性基礎(chǔ)上進(jìn)行擴(kuò)展,增加功能,這樣產(chǎn)生新的類,稱作是派生類。繼承呈現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計的層析結(jié)構(gòu),體現(xiàn)了由簡單到復(fù)雜的認(rèn)知過程。繼承是類設(shè)計層次的復(fù)用2022-12-12基于Cesium實(shí)現(xiàn)繪制圓形,正方形,多邊形,橢圓圖形標(biāo)注
這篇文章主要介紹了如何利用Cesium實(shí)現(xiàn)繪制圓形、正方形、多邊形、橢圓等形狀的圖形標(biāo)注,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-06-06javascript內(nèi)置對象Date案例總結(jié)分析
今天總結(jié)javascript內(nèi)置對象Date的使用,并且寫一個重要的網(wǎng)頁倒計時的核心算法案例,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03document.styleSheets[0].rules 與 cssRules區(qū)別
document.styleSheets[0].rules 與 cssRules區(qū)別...2007-08-08基于JavaScript實(shí)現(xiàn)繼承機(jī)制之原型鏈(prototype chaining)的詳解
我們知道在JavaScript中定義類的原型方式,而原型鏈擴(kuò)展了這種方式,以一種有趣的方式實(shí)現(xiàn)繼承機(jī)制。prototype 對象是個模板,要實(shí)例化的對象都以這個模板為基礎(chǔ)??偠灾琾rototype 對象的任何屬性和方法都被傳遞給那個類的所有實(shí)例。原型鏈利用這種功能來實(shí)現(xiàn)繼承機(jī)制2013-05-05JavaScript 直接操作本地文件的實(shí)現(xiàn)代碼
Chrome、IE和Firefox都紛紛在新版中增強(qiáng)了JavaScript引擎的執(zhí)行效率,隨著JavaScript效率在各大瀏覽器的顯著提高,JavaScript可以做越來越多的事,本地文件API的引入將讓很多有趣的功能成為現(xiàn)實(shí)。2009-12-12