当前位置: 首页 > news >正文

CSS transition和animation的用法和区别

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

Transition

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

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

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

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

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规则来定义动画的各个状态。

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

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

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


区别

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

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

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

http://www.lryc.cn/news/341139.html

相关文章:

  • 书籍推荐(附上每本书的看点)
  • LLM理解v1
  • ubuntu 22.04 -- cmake安装
  • 字符串算法题(第二十四天)
  • 【Linux】应用层协议序列化和反序列化
  • 使用Canal同步MySQL 8到ES中小白配置教程
  • 关于部署ELK和EFLK的相关知识
  • 实验室信息系统源码 saas模式java+.Net Core版开发的云LIS系统全套源码可二次开发有演示
  • PCB---Design Entry cis 绘图 导出
  • vue 一键更换主题颜色
  • WebKit内核游览器
  • Qt 拖放功能详解:理论与实践并举的深度指南
  • Springboot+Vue项目-基于Java+MySQL的企业客户管理系统(附源码+演示视频+LW)
  • 【Linux学习】Linux指令(四)
  • 阿里云服务器 使用Certbot申请免费 HTTPS 证书及自动续期
  • 统一SQL-number/decimal/dec/numeric转换
  • 软件测试入门学习笔记
  • 31. 下一个排列
  • Android笔记: mkdirs不生效失败
  • 需要添加的硬币的最小数量(Lc2952)——贪心+构造
  • 军工保密资质介绍及申请要求
  • ES6的编程风格
  • springboot 载入自定义的yml文件转DTO
  • webpack-(plugin,本地服务器,路径别名,安装vue)
  • http请求头导致了dial tcp:lookup xxxx on 10.43.0.10:53 no sunch host
  • 想要设计放大电路,必须掌握哪些?
  • 每天五分钟计算机视觉:基于卷积操作完成滑动窗口的图片分类?
  • UI设计/交互设计/视觉设计项目汇报/作品集Figma/PPT模板
  • 25、Lua 学习笔记之三(高阶话题)
  • 企业网盘搭建——LNMP