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

溫馨提示×

溫馨提示×

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

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

JS如何實現添加緩動畫

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

這篇文章主要介紹“JS如何實現添加緩動畫”,在日常操作中,相信很多人在JS如何實現添加緩動畫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JS如何實現添加緩動畫”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

需要實現的效果:點擊移動到600按鈕之后下面的div會由快到慢移動到600px,點擊移動到800之后又會移動到800px,又點擊移動600的時候會倒回去移動到600px。

JS如何實現添加緩動畫

首先需要實現第一個功能:

1.緩動畫實現,緩動畫實現思路如下:

JS如何實現添加緩動畫

2.需要避免小數的出現,如果直接將上面的公式作為距離的話會出現小數,如果移動的距離是正數的話需要向上取整,如果移動的距離是負數(比如由800px移動到600px)的話需要向下取整。

完整代碼:

<!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>緩動畫</title>
    <style>
        div {
            position: absolute;
            top: 50px;
            left: 0px;
            width: 200px;
            height: 200px;
            background-color: pink;
        }
    </style>
    <script>
        window.addEventListener('load', function() {
            function move(obj, target, callback) {
                window.clearInterval(obj.timer);
                obj.timer = window.setInterval(function() {
                    // 把步長值改為整數,不要出現小數的情況 往上取整
 
                    var step = (target - obj.offsetLeft) / 10;
                    step = step > 0 ? Math.ceil(step) : Math.floor(step);
                    // 回調函數寫在清除定時器里面
                    if (obj.offsetLeft >= target) {
                        window.clearInterval(obj.timer);
                        if (callback) {
                            callback();
                        }
                    } else {
                        obj.style.left = obj.offsetLeft + step + 'px';
                        // console.log(obj.style.left);
                    }
                }, 15)
            }
            var div = document.querySelector('div');
            var btn600 = document.querySelector('.btn600');
            btn600.addEventListener('click', function() {
                move(div, 600)
            })
            var btn600 = document.querySelector('.btn800');
            btn600.addEventListener('click', function() {
                move(div, 800, function() {
                    div.style.backgroundColor = 'violet'
                })
            })
        })
    </script>
</head>
 
<body>
    <button class="btn600">點擊移動600</button>
    <button class="btn800">點擊移動800</button>
    <div></div>
</body>
 
</html>

到此,關于“JS如何實現添加緩動畫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

js
AI

平泉县| 萍乡市| 台中县| 永仁县| 宝鸡市| 临湘市| 漳浦县| 佛教| 洛川县| 横峰县| 东平县| 梨树县| 改则县| 开化县| 什邡市| 乐东| 津市市| 海丰县| 牟定县| 和林格尔县| 疏附县| 建德市| 永康市| 新蔡县| 贺州市| 汝城县| 怀宁县| 淅川县| 海宁市| 文登市| 高清| 称多县| 阆中市| 灵璧县| 兰西县| 肥乡县| 武隆县| 崇义县| 新宾| 襄樊市| 永胜县|