您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“原生js如何實現輪播”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“原生js如何實現輪播”這篇文章吧。
效果如下:
代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>javascript</title> <style> *{margin:0;padding:0;border:0;} a{text-decoration:none;color:#fff;font-size:40px;line-height:200px;display:none;text-align:center;} #container{width:300px;height:200px;margin:50px auto;position:relative;overflow:hidden;} #list{width:2100px;height:200px;position:absolute;top:0;} #list span{width:300px;height:200px;display:inline-block;text-align:center;font-size:22px;float:left;color:#fff;} .one{background:red;} .two{background:orange;} .three{background:blue;} .four{background:green;} .five{background:black;} #buttons{width:200px;height:30px;position:absolute;bottom:0px;left:100px;z-index:9;} #buttons span{display:inline-block;cursor:pointer;width:12px;height:12px;border-radius:6px;background: #2a2a2a} #prev{width:40px;height:200px;position:absolute;left:0px;} #next{width:40px;height:200px;position:absolute;right:0px;} #container .on{background:#fff;} </style> </head> <body> <div id="container"> <div id="list" > <span class="five">我是黑色第五張</span> <span class="one">我是紅色第一張</span> <span class="two">我是黃色第二張</span> <span class="three">我是藍色第三張</span> <span class="four">我是綠色第四張</span> <span class="five">我是黑色第五張</span> <span class="one">我是紅色第一張</span> </div> <div id="buttons"> <span class="on" index="1"></span> <span index="2"></span> <span index="3"></span> <span index="4"></span> <span index="5"></span> </div> <a id="prev" href="javascript:;" rel="external nofollow" rel="external nofollow" ><</a> <a id="next" href="javascript:;" rel="external nofollow" rel="external nofollow" >></a> </div> <script> var container = document.getElementById('container'), list = document.getElementById('list'), buttons = document.getElementById('buttons').getElementsByTagName('span'), prev = document.getElementById('prev'), next = document.getElementById('next'), index = 1, len = 5, interval = 3000, animated = false, timer; function animate(offset){ if(offset == 0) return; animated = true; var time = 150, inter = 5, speed = offset/(time/inter), left = parseInt(list.style.left) + offset; var go = function(){ if((speed>0 && parseInt(list.style.left)<left) || (speed<0 && parseInt(list.style.left)>left)){ list.style.left = parseInt(list.style.left) + speed + 'px'; setTimeout(go,inter); }else{ list.style.left = left + 'px'; if(left > -100){ list.style.left = -300*len + 'px'; } if(left < (-300*len)){ list.style.left = '-300px' } animated = false; } } go(); } function showButton(){ for(var i=0 ; i<buttons.length ; i++){ if(buttons[i].className == 'on'){ buttons[i].className = ''; break; } } buttons[index - 1].className = 'on'; } function play(){ timer = setTimeout(function(){ next.onclick(); play(); },interval); } function stop(){ clearTimeout(timer); } next.onclick = function(){ if(animated) { return; } if(index == 5){ index = 1; }else{ index++; } animate(-300); showButton(); } prev.onclick = function(){ if(animated) { return; } if(index == 1){ index = 5; }else{ index--; } animate(300); showButton(); } for (var i = 0; i < buttons.length; i++) { buttons[i].onclick = function () { if (animated) { return; } if(this.className == 'on') { return; } var myIndex = parseInt(this.getAttribute('index')); var offset = -300 * (myIndex - index); animate(offset); index = myIndex; showButton(); } } container.onmouseover = function(){ prev.style.display = next.style.display = 'block'; stop(); } container.onmouseout = function(){ prev.style.display = next.style.display = 'none'; play(); } play(); </script> </body> </html>
以上是“原生js如何實現輪播”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。