CSS中transition与animation的功能与不同

1.transition过渡

transition属性用于指定元素从一个状态到另一个状态时的过渡效果,在给定的时间内平滑而自然地改变属性值。

css 复制代码
transition: property duration timing-function delay;
  • property: 指定应用过渡效果的CSS属性名称。可以使用all来指定所有可动画的属性。
  • duration: 过渡效果的持续时间,例如 1s 或 500ms。
  • timing-function: 过渡效果的速度曲线,常用的是linear、ease、ease-in、ease-out 和 ease-in-out。
  • delay: 过渡效果开始前的延迟时间,例如 1s。
css 复制代码
button {
    background-color: aquamarine;
    transition: background-color 0.5s ease;    
}
button:hover {
    background-color:aqua;
}
/* 所有属性过渡 */
.all-properties {
    transition: all 0.5s ease 2s;
}

2.animation动画

animation允许通过关键帧来定义动画,可以实现更为复杂和连续的动画效果。

css 复制代码
animation: name duration timing-function delay iteration-count direction fill-mode play-state;
  • name:@keyframes 名称。
  • duration: 过渡效果的持续时间。
  • time-function: 动画的速度曲线。常用的是ease、linear、ease-in、ease-out、ease-in-out。
  • delay: 动画效果开始前的延迟时间,例如 1s。
  • iteration-count: 设置 infinite 动画将永远持续下去或设置自然数字。
  • direction: 指定向前播放、向后播放还是交替播放动画。常用的是normal、reverse、alternate、alternate-reverse。
  • fill-mode: 在不播放动画时的样式(在开始之前,结束之后,或两者都结束时),默认值是none。常用的是none、forwards、backwards、both。
  • play-state:规定动画是运行还是暂停。默认值是running。常用的是running、paused。
css 复制代码
/* 定义关键帧 */ 
@keyframes expand {
    0% { transform: scale(1); }
    100% { transform: scale(1.5); }
}

/* 应用动画 */
.animated-box {
    width: 300px;
    line-height: 30px;
    background-color: rgb(0, 255, 145);
    animation: expand 2s ease-in-out 1s infinite alternate;
}

3.不同之处

  • 目的:transition 主要用于处理元素状态的过渡,animation用于创建更为复杂和连续的动画效果。
  • 使用场景:transition适用于简单的显示/隐藏动画,animation适用于需要精确控制的复杂动画序列。
  • 控制程度:animation提供了更多的动画控制选项,如动画的播放状态、速度曲线等。
相关推荐
扫地的小何尚1 天前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
数据皮皮侠AI2 天前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
开开心心就好3 天前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
Evan东少5 天前
[踩坑]笔记本Ubuntu20.04+NvidiaRTX5060驱动+cuda+Pytorch+ROS/Python实现人脸追踪(环境准备)
1024程序员节
不爱编程的小陈7 天前
C/C++每日面试题
面试·职场和发展·1024程序员节
开开心心就好7 天前
右键菜单管理工具,添加程序自定义名称位置
linux·运维·服务器·ci/cd·docker·pdf·1024程序员节
码农三叔8 天前
(4-2-05)Python SDK仓库:MCP服务器端(5)Streamable HTTP传输+Streamable HTTP传输
开发语言·python·http·大模型·1024程序员节·mcp·mcp sdk
西幻凌云12 天前
初始——正则表达式
c++·正则表达式·1024程序员节
启芯硬件12 天前
电源XL6009E1的dieshot细节分析-芯片设计干货
大数据·经验分享·硬件工程·1024程序员节
一颗青果14 天前
单例模式 | 死锁
linux·服务器·单例模式·1024程序员节