css

47、动画

yu
yu
2024-09-30 / 0 评论 / 8 阅读 / 正在检测是否收录...

1、基本使用


<!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>
        .outer{
            width: 1000px;
            height: 100px;
            border: 1px solid black;
        }
        
        /* 定义一个动画(定义一组关键帧)--第一种方式 */
        @keyframes wangyoudong {
            /* 第一帧 */
            from{

            }
            /* 最后一针 */
            to{
                transform: translate(900px);
                background-color: red;
            }
        }
        /* 定义一个动画(定义一组关键帧)--第二种方式 */
        @keyframes wangyoudong2{
            /* 第一帧 */
            0%{

            }
            /* 29%{
                background-color: red;
            }
            48%{
                background-color: orange;
            }
            88%{
                background-color: yellow;
            } */
            /* 最后一帧 */
            100%{
                transform: translate(900px) rotate(360deg);
                background-color: purple;
                border-radius: 50%;
            }
        }
        .inner{
            width: 100px;
            height: 100px;
            background-color: deepskyblue;
            /* 应用动画到元素 */
            animation-name: wangyoudong2;
            /* 动画持续的时间 */
            animation-duration: 3s;
            /* 动画的延迟时间 */
            animation-delay: 0.2s;
        }
    </style>
</head>
<body>
    <div class="outer">
        <div class="inner"></div>
    </div>
</body>
</html>

2、其他属性


<!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>
        .outer{
            width: 200px;
            height: 1000px;
            
        }
        
        /* 定义一个动画(定义一组关键帧)--第一种方式 */
        @keyframes wangyoudong2 {
            /* 第一帧 */
            from{

            }
            /* 最后一针 */
            to{
                transform: translateY(900px) rotate(360deg);
                background-color: purple;
                border-radius: 50%;
            }
        }
        .inner{
            width: 200px;
            height: 200px;
            
            /* 应用动画到元素 */
            animation-name: wangyoudong2;
            /* 动画持续的时间 */
            animation-duration: 4s;
            /* 动画的延迟时间 */
            animation-delay: 0.2s;

            /* ****其他属性--start***** */
            /* 设置动画的方式 */
            animation-timing-function: linear;

            /* 动画播放的次数 */
            animation-iteration-count: infinite;

            /* 动画的方向 */
            animation-direction: alternate;

            /* 动画以外的状态(不发生动画的时候在哪里) */
            /* animation-fill-mode: forwards; */

            /* 动画的播放状态 */
           
        }
        .outer:hover .inner{
            animation-play-state: paused;
        }
    </style>
</head>
<body>
    <div class="outer">
        <img src="/周渝皓的个人网站/tp/love.png" class="inner">
    </div>
</body>
</html>

3、动画的复合属性


<!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>
        .outer{
            width: 1000px;
            height: 100px;
            border: 1px solid black;
        }
        
        /* 定义一个动画(定义一组关键帧)--第一种方式 */
        @keyframes wangyoudong2 {
            /* 第一帧 */
            from{

            }
            /* 最后一针 */
            to{
                transform: translate(900px) rotate(360deg);
                background-color: purple;
                border-radius: 50%;
            }
        }
        .inner{
            width: 100px;
            height: 100px;
            background-color: deepskyblue;
            animation: wangyoudong2 3s 0.5s linear 2 alternate-reverse forwards;
        }
        .outer:hover .inner{
            /* 暂停单独用 */
            animation-play-state: paused;
        }
    </style>
</head>
<body>
    <div class="outer">
        <div class="inner"></div>
    </div>
</body>
</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>动画与过渡的区别</title>
    <style>
        .outer{
            width: 1000px;
            height: 200px;
            border: 1px solid black;
        }
        .inner{
            width: 100px;
            height: 100px;
        }
        /* 用过度实现inner1跑到右边去 */
        .inner1{
            background-color: orange;
            transition: 3s linear;
        }
        .outer:hover .inner1{
            transform: translate(900px);
        }
        /* 用动画实现inner2跑到右边去 */
        @keyframes atzhou{
            0%{

            }
            100%{
                transform: translate(900px);
            }
        }
        .inner2{
            background-color: green;
            animation:atzhou 3s linear forwards;
        }

    </style>
</head>
<body>
    <div class="outer">
        <div class="inner inner1">过渡</div>
        <div class="inner inner2">动画</div>
    </div>
</body>
</html>
0

评论 (0)

取消