您好,登錄后才能下訂單哦!
這篇文章主要講解了“JS怎么實現給不同元素設置不同的定時器”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JS怎么實現給不同元素設置不同的定時器”吧!
案例效果:
上面的紫色盒子打開頁面會自己移動到300px,點擊上面的按鈕,粉色的span才會移動,并且移動到200px。
注意:需要給定時器單獨命名,如果都寫在同一個封裝函數里面的話,每次都會開辟一個定時器的空間,這樣就會造成資源浪費,所以直接采用給對象添加定時器屬性的方式來節約空間。同時要注意,在設置定時器之前要清除掉這個對象的定時器屬性,因為如果不清除的話,當連續按下按鈕的時候就會又開啟一個定時器這樣下面那個span就會越跑越快。
完整代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> div { position: absolute; left: 0; top: 50px; width: 200px; height: 200px; background-color: violet; } span { position: absolute; left: 0; top: 270px; display: block; width: 300px; height: 300px; background-color: pink; } </style> </head> <body> <button>點擊這個按鈕span才移動</button> <div></div> <span>sy is sy</span> <script> // 動畫函數 // obj代表是哪個對象,target代表移動的距離 function move(obj, target) { // 當我們不斷的點擊按鈕,這個元素的速度會越來越快,因為開啟了太多的定時器 // 解決方案就是 讓我們元素只有一個定時器執行 // 先清除以前的定時器,只保留當前的一個定時器執行 clearInterval(obj.timer); obj.timer = window.setInterval(function() { if (obj.offsetLeft >= target) { window.clearInterval(obj.timer); } else { obj.style.left = obj.offsetLeft + 1 + 'px'; } }, 30); } var div = document.querySelector('div') var span = document.querySelector('span') var btn = document.querySelector('button') move(div, 300); btn.addEventListener('click', function() { move(span, 200); }) </script> </body> </html>
感謝各位的閱讀,以上就是“JS怎么實現給不同元素設置不同的定時器”的內容了,經過本文的學習后,相信大家對JS怎么實現給不同元素設置不同的定時器這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。