transition(过渡)和animation(动画)——CSS

1.transition过渡

可以为一个元素在不同状态之间进行切换时添加过渡效果,实现不同状态间的变化效果。通过触发事件(鼠标悬停、点击等),在两个状态间切换。

1.1 使用

语法:transition: property duration timing-function delay;

  • property​ ​:过渡属性(如background-colorall表示所有属性)。

  • ​duration​ ​:持续时间(如0.3s),必须设置

  • ​timing-function​ ​:速度曲线(easelinearcubic-bezier()等)。

  • ​delay​ ​:延迟时间(如0.2s

示例代码:表示当鼠标悬停在img标签时,宽高从200×200变为500×400。

html 复制代码
<style>
    img {
        width:200px;
        height:200px;
        
        transition:all 1s;
        /*all表示对自身所有属性都加上过渡效果,若要单独让某个属性添加过渡则写具体的css属性,1s表示过渡效果的时间*/
    }
    img:hover {
        width:500px;
        height:400px;
    }
</style>

<img src="#">

2. animation动画

通过关键帧定义复杂动画序列,支持自动播放和循环,允许在复数个状态间进行切换,且可以在页面加载时自动开始运行,不需要事件触发。

2.1 使用

语法:animation: name duration timing-function delay iteration-count direction fill-mode;

  • ​name​ ​:@keyframes定义的动画名。

  • ​iteration-count​ ​:播放次数(infinite为无限循环)。

  • ​direction​ ​:播放方向(alternate交替播放)。

  • ​fill-mode​ ​:动画结束状态(forwards保留最后一帧)。

代码示例:修改box盒子的background-color属性,从红色变为黄色。

html 复制代码
<style>
	@keyframes example {
 /* from(等价于 0%):动画起始状态;to(等价于 100%):动画结束状态,可通过百分比定义中间状态(如 50% {background-color: blue;} */
  		from {background-color: red;}
  		to {background-color: yellow;}
}

.box {
  width: 100px;
  height: 100px;
  background-color: red;
    /* 引用关键帧,过渡时间为5s, infinite为动画无限循环 */
  animation: example 5s infinite;
}
</style>
相关推荐
胡萝卜术11 小时前
从API调用到手写LRU:力扣146「LRU缓存」的哈希表+双向链表终极进化之路
前端·javascript·面试
科技道人11 小时前
记录 默认置灰/禁用 app ‘Search Engine Selector‘ 的disable按钮
开发语言·前端·javascript
天疆说11 小时前
Zotero Connector 在 Edge 里找不到桌面 Zotero(Linux / Zotero 9.0.6 / Edge 150)
linux·前端·edge
李伟_Li慢慢12 小时前
02-从硬件说起WebGL
前端·three.js
kyriewen13 小时前
看了微软几万人用AI编程的数据——效率涨24%的代价没人提
前端·ai编程·claude
2601_9637713713 小时前
How to Scale Your WordPress Store Traffic in 2026
前端·php·plugin
亿元程序员13 小时前
老板说我的3D箭头游戏用来做试玩太普通了,没人想玩,让我变点花样...
前端
李伟_Li慢慢14 小时前
01-threejs架构原理-课程简介
前端·three.js
_瑞15 小时前
深入理解 iOS 渲染原理
前端·ios
IT_陈寒15 小时前
SpringBoot自动配置失灵?你可能忘了这个关键注解
前端·人工智能·后端