监听 css 过渡动画结束 - transitionend 事件

追格官方小助手/ 2023年03月13日/ CSS教程/ 浏览 2528

如果想在 css 的动画结束后,立刻执行其他操作,只需要监听过渡动画结束事件即可。



<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>监听过渡动画结束事件</title>
    <style>
        #div-trans {
            height: 100px;
            width: 100px;
            background-color: red;
            transition: width 2s linear 0s;
        }

        #div-trans:hover {
            width: 250px;
        }
    </style>
</head>

<body>
    <div id="div-trans"></div>
</body>
<script>
    let trans = document.getElementById("div-trans")
    trans.addEventListener("transitionend", function () {
        console.log('过渡动画结束,现在的宽度是:' + trans.scrollWidth);
    });
</script>

</html>


需要注意的是,需要在回调函数内判断元素最后的状态是初始状态还是最终状态,然后再决定执行什么样的操作。


比如上面那个例子,用户鼠标移上后,未等过渡动画执行完,就把鼠标移走,动画就会反向执行,最后的状态依然是初始状态。


发表评论

暂无评论,抢个沙发...

客服 工单