CSS transition和animation的用法和区别

news/2024/10/19 4:21:17/

Transition和Animation在CSS中都是用于实现元素状态变化的效果,但它们在用法和特性上存在明显的区别。

Transition

transition是过度属性,主要强调的是元素状态的过渡效果

它通常用于在元素的状态发生变化时,平滑地过渡到一个新的状态。

Transition的语法包括指定要过渡的CSS属性、过渡效果的持续时间、速度曲线以及开始延迟等。

例如,当鼠标悬停在div元素上时,可以使用Transition来实现宽度和高度的平滑过渡:

css">div {  width: 100px;  height: 100px;  background-color: red;  transition: width 1s ease-in-out, height 0.5s linear;  
}  div:hover {  width: 200px;  height: 200px;  
}

在这个例子中,当鼠标悬停在div上时,其宽度和高度会平滑地过渡到新的值,过渡的持续时间分别为1秒和0.5秒,速度曲线分别为ease-in-out和linear。


Animation

animation是动画属性,加强调流程和控制,它提供了更多的自由度和复杂性。

它的实现不需要触发事件,设定好时间之后可以自己执行,且可以循环一个动画。

Animation使用关键帧(keyframes)来定义动画的多个状态,并可以指定每个状态的样式。

此外,Animation还封装了循环次数、动画延迟等功能。

Animation的使用步骤如下:

  1. 定义动画
    使用@keyframes规则来定义动画的各个状态。

    css">@keyframes change {  0% { width: 200px; }  50% { width: 500px; height: 300px; }  100% { width: 800px; height: 500px; }  
    }
    
  2. 使用动画
    将定义的动画应用于需要动画效果的元素上。

    css">div {  animation-name: change;  animation-duration: 4s;  
    }
    

    在这个例子中,div元素的宽度和高度会在4秒内按照定义的关键帧进行变化。


区别

  • 控制粒度
    Transition的控制粒度相对较粗,主要关注过渡的速度和方式。
    Animation提供了更细粒度的控制,可以手动指定每个阶段的属性,以及循环次数、动画延迟等功能。

  • 状态数量
    Transition只有两个状态:开始状态和结束状态。
    Animation可以有多个状态,通过关键帧来定义,更加灵活和自由。

  • 触发方式
    Transition需要借助其他方式(如CSS状态选择器或JavaScript)来触发。
    Animation的触发方式则更加多样,可以通过设置动画属性直接触发。


http://www.ppmy.cn/news/1434732.html

相关文章

【大语言模型LLM】-如何使用大语言模型提高工作效率?

关于作者 行业:人工智能训练师/LLM 学者/LLM微调乙方PM发展:微调大模型训练/大模型增强检索RAG分享国内大模型前沿工作记录,共同成长,欢迎关注交流… 大语言模型LLM基础-系列文章 大语言模型LLM】-大语言模型如何编写Prompt?持…

Java基础:抽象工厂模式

一、模式定义与目的 抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它为创建一组相关或相互依赖的对象提供了接口,而无需指定这些对象的具体类。这种模式允许客户端使用抽象接口来创建家族内的产品对象&#xff0…

C#控制台相关方法

控制台相关方法 文章目录 控制台输入1、清空2、设置控制台3、设置光标位置,1y 2x4、设置颜色相关5、光标显隐6、关闭控制台思考 移动方块 控制台输入 //如果ReadKey(true)不会把输入的内容显示再控制台上 char c Console.ReadKey(true).KeyChar;1、清空 ​ Cons…

React-RTK

​🌈个人主页:前端青山 🔥系列专栏:React篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-RTK 目录 1、介绍 2、安装 3、编写RTK使用示例 4、官方提供项目包示例 创建 Redux …

数据库——实验9 存储过程的使用

1. 存储过程的定义 存储过程是一系列预先编辑好的、能实现特定数据操作功能的SQL 代码集,它与特定的数据库相关联,存储在SQL Server服务器上。用户可以像使用自定义的函数一样重复调用这些存储过程,实现它所定义的操作。 2. 存储过程的类型…

声明式 GUI 工具包:响应式、跨平台、多语言 | 开源日报 No.230

slint-ui/slint Stars: 14.5k License: NOASSERTION slint 是一个声明式的 GUI 工具包,用于为 Rust、C 或 JavaScript 应用程序构建原生用户界面。 可扩展性:支持响应式 UI 设计,跨操作系统和处理器架构的跨平台使用,并支持多种…

具身智能的 Scaling Law

Scaling Law 具身智能的Scaling Law指的是一种理论,它探讨了具备智能的生物或机器系统随着规模的扩展而表现出的一些规律性变化。这个理论涵盖了许多方面,主要关注智能系统的不同尺度之间的相互关系。 具身智能是指生物或机器系统在其环境中感知、行动…

ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路

前言 前面的几篇文章讲了很多 JWT 的优点,但作为技术人员都知道,没有一种技术是万能的 “银弹”,所谓有矛就有盾,相比 Session、Cookie 等传统的身份验证方式,JWT 在拥有很多优点的同时,也有着不可忽视的缺…