中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS怎么實現給不同元素設置不同的定時器

發布時間:2022-07-04 13:37:36 來源:億速云 閱讀:172 作者:iii 欄目:開發技術

這篇文章主要講解了“JS怎么實現給不同元素設置不同的定時器”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“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怎么實現給不同元素設置不同的定時器這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

js
AI

桐城市| 台东县| 玛纳斯县| 营山县| 剑河县| 兴文县| 安乡县| 儋州市| 奉贤区| 汕头市| 洪泽县| 兰州市| 开阳县| 棋牌| 辽中县| 湘阴县| 金昌市| 土默特左旗| 宁武县| 铜陵市| 丰都县| 贵港市| 江北区| 遂溪县| 麻城市| 上杭县| 淮北市| 敦化市| 瓦房店市| 密山市| 台南县| 东乌| 炉霍县| 淮滨县| 晋中市| 务川| 宣恩县| 尉犁县| 桃江县| 共和县| 玉山县|