jQueryで少し待ってから処理を実行する方法のご紹介です。
setTimeout(function() { // 1秒(1000ms)後に処理 }, 1000);
これで1秒(1000ms)後に処理が実行される。
もし「setTimeout()」を使って、繰り返し処理を実行する場合は下記の様に記述します。
繰り返し処理を行う場合は、合わせて止める処理も記述しましょう。
var set; var repeat = function() { // 1秒(1000ms)後に処理 set = setTimeout(repeat, 1000); } repeat(); // setTimeout()のクリア条件を設定し実行 $(".btn").on("click", function() { clearTimeout(set); });
次のデモでsetTimeout()をクリアしよう!
ボタンを押すとカウントが停止し、「再開する」を押すとまたカウントがスタートします。
ソースは下にありますので、よければご利用ください!
0
停 止
HTML
<div class="demo1"> <p>0</p> <span>停 止</span> <article>再開する</article> </div>
jQuery
var set; var num = 0; var repeat = function() { // 0.1秒(100ms)毎に処理 $(".demo1 p").text(num++); set = setTimeout(repeat, 100); } // setTimeout()スタート repeat(); $(".demo1 span").on("click", function() { // setTimeout()のクリア clearTimeout(set); $(".demo1 article").show(); }); $(".demo1 article").on("click", function() { // setTimeout()再開 repeat(); $(".demo1 article").hide(); });
CSS
.demo1 { position: relative; background: #4d5858; border-radius: 12px; box-shadow: 4px 4px 16px -2px rgba(0,0,0,.3) inset; padding: 48px 0 70px; color: #fff; text-align: center; margin: 24px auto; } .demo1 p { font-size: 32px; font-weight: bold; margin: 0 auto 24px; text-shadow: 3px 4px 3px rgba(0,0,0,.5); } .demo1 span { font-weight: bold; font-size: 20px; width: 115px; padding: 8px 0; margin: 0 auto; display: block; text-align: center; background: #00d9b8; border-radius: 80px; box-shadow: 0 15px 23px -12px rgba(0,0,0,.6); color: #313939; display: block; cursor: pointer; -webkit-transition: .4s; transition: .4s; } .demo1 span:hover { background: #84f2e1; color: #4d5858; } .demo1 article { position: absolute; bottom: 30px; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); font-size: 14px; font-weight: 100; margin-top: 20px; display: inline-block; text-decoration: underline; cursor: pointer; display: none; } .demo1 article:hover { opacity: .4; }
コメント