Animation有哪些属性

4 阅读3分钟

Animation有哪些属性

CSS Animation 是一个强大的工具,用于创建复杂的多阶段动画。它通过 @keyframes 定义动画的关键帧,并通过一系列属性控制动画的行为。以下是 Animation 的常用属性:

  1. animation-name
  • 作用:指定动画的名称,对应 @keyframes 中定义的动画。
  • 示例
    @keyframes slideIn {
        from { transform: translateX(-100%); }
        to { transform: translateX(0); }
    }
    .box {
        animation-name: slideIn;
    }
    
  1. animation-duration
  • 作用:定义动画的持续时间。
  • 取值:时间值(如 1s500ms)。
  • 示例
    .box {
        animation-duration: 2s;
    }
    
  1. animation-timing-function
  • 作用:定义动画的速度曲线。
  • 常用值
    • ease(默认):慢快慢。
    • linear:匀速。
    • ease-in:慢到快。
    • ease-out:快到慢。
    • ease-in-out:慢快慢。
    • cubic-bezier(n,n,n,n):自定义贝塞尔曲线。
  • 示例
    .box {
        animation-timing-function: ease-in-out;
    }
    
  1. animation-delay
  • 作用:定义动画开始前的延迟时间。
  • 取值:时间值(如 1s500ms)。
  • 示例
    .box {
        animation-delay: 1s;
    }
    
  1. animation-iteration-count
  • 作用:定义动画的播放次数。
  • 取值
    • 数字(如 2 表示播放 2 次)。
    • infinite:无限循环。
  • 示例
    .box {
        animation-iteration-count: infinite;
    }
    
  1. animation-direction
  • 作用:定义动画的播放方向。
  • 取值
    • normal(默认):正向播放。
    • reverse:反向播放。
    • alternate:正向交替反向。
    • alternate-reverse:反向交替正向。
  • 示例
    .box {
        animation-direction: alternate;
    }
    
  1. animation-fill-mode
  • 作用:定义动画播放前后元素的样式。
  • 取值
    • none(默认):动画结束后元素恢复初始状态。
    • forwards:动画结束后元素保持最后一帧的样式。
    • backwards:动画开始前元素应用第一帧的样式。
    • both:同时应用 forwardsbackwards
  • 示例
    .box {
        animation-fill-mode: forwards;
    }
    
  1. animation-play-state
  • 作用:控制动画的播放状态。
  • 取值
    • running(默认):动画播放。
    • paused:动画暂停。
  • 示例
    .box:hover {
        animation-play-state: paused;
    }
    
  1. 简写属性 animation
  • 作用:将上述属性合并为一个简写属性。
  • 语法
    animation: name duration timing-function delay iteration-count direction fill-mode play-state;
    
  • 示例
    .box {
        animation: slideIn 2s ease-in-out 1s infinite alternate forwards;
    }
    

示例代码

@keyframes slideIn {
    0% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(0);
    }
}

.box {
    animation-name: slideIn;
    animation-duration: 2s;
    animation-timing-function: ease-in-out;
    animation-delay: 1s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-fill-mode: forwards;
    animation-play-state: running;
}

/* 简写形式 */
.box {
    animation: slideIn 2s ease-in-out 1s infinite alternate forwards running;
}

总结

属性作用常用值
animation-name指定动画名称对应@keyframes 名称
animation-duration定义动画持续时间时间值(如1s500ms
animation-timing-function定义动画速度曲线easelinearcubic-bezier()
animation-delay定义动画延迟时间时间值(如1s500ms
animation-iteration-count定义动画播放次数数字或infinite
animation-direction定义动画播放方向normalreversealternate
animation-fill-mode定义动画播放前后元素的样式noneforwardsbackwardsboth
animation-play-state控制动画播放状态runningpaused
animation简写属性,合并上述属性按顺序指定各属性值

通过合理使用这些属性,可以创建出丰富、灵活的动画效果!

更多vue相关插件及后台管理模板可访问vue admin reference,代码详情请访问github