CSS animation动画使用详解

本文详细介绍了CSS动画的使用步骤,包括定义动画和应用动画,并探讨了animation的复合属性及其拆分属性。通过实例展示了如何通过@keyframes创建动画效果,如宽度变化和背景位置移动。此外,还讲解了动画属性的设置,如动画时长、速度曲线、延迟时间和执行次数。文章最后提到了多组动画的组合使用和逐帧动画的概念,强调了配合精灵图使用时的animation-timing-function属性。
摘要由CSDN通过智能技术生成

目录

一、animation动画的使用步骤

第一步:定义动画

第二步:使用动画

二、animation的复合属性

三、animation的拆分属性

四、动画属性



一、animation动画的使用步骤

第一步:定义动画

//changes为定义的动画名称
  //①两种状态的变化
 @keyframes change {
            from {
                width: 200px;
            }
            to {
                width: 600px;
            }
        }

//②多种状态的变化 
//百分比为动画占总时长的占比
  @keyframes changes {
            0% {
                width: 200px;
            }
            50% {
                width: 500px;
                height: 300px;
            }
            100% {
                width: 800px;
                height: 500px;
            }
        } 

第二步:使用动画

//给需要调用动画的类名或标签加上animation change为动画名称 1s为动画时长
.box{
    animation:change 1s;
}

二、animation的复合属性

  • animation:动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时的状态
//animation:动画名称 动画时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时的状态
//liner为匀速
animation:change 1s linear
//step(3) 为分布动画
animation:change 1s step(3)
 // 5s为延迟时间 infinite无限 alternate反方向 
animation: change 1s steps(3) 5s infinite alternate;
//执行完毕时的状态(最开始backwards,最终forwards) 不能设置重复次数 与 动画方向
animation:change 1s forwards

三、animation的拆分属性

四、动画属性

  • 逐帧动画(配合精灵图使用)animation-timing-function:step(N) N为将动画分成N份(与精灵图的小图个数相同)
  • 多组动画 animation:动画1,动画2,动画N  (用逗号隔开)
  •  .box {
                width: 140px;
                height: 140px;
                background-image: url(./images/bg.png);
                /* 跟多个动画用逗号隔开 */
                animation: run 1s steps(12) infinite, moves 1s forwards;
            }
            /* 定义动画 */
            
            @keyframes run {
                /* 背景图改位置 从0的位置到图片的最大宽度*/
                from {
                    background-position: 0 0;
                }
                to {
                    /* 往左挪时负的 */
                    background-position: -1680px 0;
                }
            }
            /* 定义盒子移动的动画 */
            
            @keyframes moves {
                /* 如果最初始的动画开始样式可以省略from */
                from {
                    transform: translateX(0);
                }
                to {
                    transform: translateX(800px);
                }
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gik99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值