スライドを作ろうとしていたのですが、最後のdiv.boxから最初のdiv.boxに戻る動作が遅いです。(2000より掛っている。)
これはなぜでしょうか?
html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>zengamen</title> <link rel="stylesheet" href="reset.css"> <link rel="stylesheet" href="style.css"> <script src="base.js" defer></script> </head> <body> <div id="slide"> <div class="box active"> </div> <div class="box"> </div> <div class="box"> </div> </div> </body> </html>
css
@charset 'utf-8'; .box{ width: 100vw; height: 100vh; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); } .box:nth-child(1){ background-color: blueviolet; } .box:nth-child(2){ background-color:red; } .box:nth-child(3){ background-color:violet; } div.active{ z-index: 2; }
js
document.addEventListener('DOMContentLoaded', function () { let b = document.querySelector('.active'); let child = document.querySelectorAll('.box'); let i = 0; let leg = child.length-1; console.log(leg); let nextact = function () { if(i <= leg){ child[i].classList.remove('active'); i++ if(i < leg){ child[i].classList.add('active'); } } else{ i = 0; child[i].classList.add('active'); } }; let pretact = function () { child[i].classList.remove('active'); i-- child[i].classList.add('active') }; let timerId = setTimeout(function tick() { nextact(); timerId = setTimeout(tick, 2000); }, 2000); });
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。