在前端使用js开发中,可以使用keyframes实现简单的动画效果;

本文中代码实现的效果如下,当打开html页面后,点击div设置的颜色块,启动动画,颜色渐变到目标颜色,当动画执行中,点击颜色块,则停止动画,并且恢复最开始状态;

通过点击事件,修改div的id名实现的效果

style代码如下

<style>
    #r1{
        animation: move  ease 2s  infinite alternate
    }
    @keyframes move {
        0%{transform: scale(1);}
        100%{
            width: 500PX;
            background-color: blue;
        }
    }
</style>

script代码如下

    <script>
        test_keyframes=function(){
            element_id=document.getElementsByTagName('div');
			if (element_id[0].id==='') {
				element_id[0].id='r1';
			} else{
				element_id[0].id='';
			}

        }

    </script>

整个html代码如下:

<!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>keyframes动画</title>
</head>
<style>
    #r1{
        animation: move  ease 2s  infinite alternate
    }
    @keyframes move {
        0%{transform: scale(1);}
        100%{
            width: 500PX;
            background-color: blue;
        }
    }
</style>


<body>
    <div id="" onclick="test_keyframes()" style="height: 50px;width: 100px;background-color: rgb(255, 0, 149);">
    </div>
    <script>
        test_keyframes=function(){
            element_id=document.getElementsByTagName('div');
			if (element_id[0].id==='') {
				element_id[0].id='r1';
			} else{
				element_id[0].id='';
			}

        }

    </script>

</body>
</html>

修改animation: move  ease 2s  infinite alternate 中的2s为10s则动画市场为10秒;

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐