css animation 动画属性

发布于:2025-05-09 ⋅ 阅读:(22) ⋅ 点赞:(0)

animation

// 要绑定的关键帧规则名称
animation-name: slidein;

// 定义动画完成一个周期所需的时间,秒或毫秒
animation-duration: 3s;

// 定义动画速度曲线
animation-timing-function: ease;

// 定义动画开始前的延迟时间
animation-delay: 1s;

// 定义动画播放次数:n 具体次数;infinite:无限循环;
animation-iteration-count: infinite;

// 定义动画是否反向播放
animation-direction: normal;

// 定义动画再执行前后如何应用样式
animation-fill-mode: forwards;

// 控制动画播放状态:running 正在播的;paused 暂停;
animation-play-state: running;

// 简写 animation 属性
// animation: name duration timing-function delay iteration-count direction fill-mode play-state;


animation-timing-function: ease;(定义动画速度曲线)

ease

(默认)慢-快-慢
linear 匀速
ease-in 慢开始
ease-out 慢结束
ease-in-out 满开始、慢结束
cubic-bezier(n, n, n, n) 自定义曲线

animation-direction: normal;(定义动画是否反向播放)

normal 正常播放
reverse 反向播放
alternate 轮流正反向
alternate-reverse 先反向、后正向 轮流

animation-fill-mode: forwards;(定义动画再执行前后如何应用样式)

none (默认)不应用任何样式
forwards 保持最后一帧样式
backwards 应用第一帧样式(考虑 delay)
both 同时应用 forwards 和 backwards

 @keyframes 规则

// 定义动画的关键帧
@keyframes slidein{
    from {
        transform: translateX(0%);
    }
    50% {
        transform: translateX(50%);
        opacity: 0.5;
    }
    to {
        transform: translateX(100%)
        opacity: 1;
    }
}

性能考虑

优先使用 transform 和 opacity 属性进行动画,这些属性可以由浏览器高效处理;

避免动画过多元素,可能导致性能问题;

使用 will-change 属性预先告知浏览器哪些元素会变化;

.element {
    will-change: transform, opacity;
}

CSS will-change 属性详解

是一个性能你优化属性,它允许开发者提前告知浏览器哪些元素属性即将发生变化,让浏览器可以提前做好优化准备。

/* 基本语法 */
will-change: auto | <animateable-feature> | scroll-position | contents;
auto 默认值,表示浏览器不会做任何特殊优化
ps. transform  opacity ... 特定属性,指即将变化的CSS属性名称
scroll-position 表示元素的滚动位置即将改变
contents 表示元素的内容即将改变


网站公告

今日签到

点亮在社区的每一天
去签到