transtion 和animation 和 transform 的区别

CSS3 有3种和动画相关的属性:transform, transition, animation。

其中 transform 描述了元素静态样式。而transition 和 animation 却都能实现动画效果。

所以三者之中transform 常常配合后两者使用,在页面实现酷炫的五毛(或五元)特效。

但后两者又有什么区别呢?

这篇文章做了比较好的总结:

http://www.kirupa.com/html5/css3_animations_vs_transitions.htm

我罗列其中的要点:

不同点:

1.  触发条件不同。transition通常和hover等事件配合使用,由事件触发。animation则和gif动态图差不多,立即播放。

2. 循环。 animation可以设定循环次数。

3. 精确性。 animation可以设定每一帧的样式和时间。tranistion 只能设定头尾。 animation中可以设置每一帧需要单独变化的样式属性, transition中所有样式属性都要一起变化。

4. 与javascript的交互。animation与js的交互不是很紧密。tranistion和js的结合更强大。js设定要变化的样式,transition负责动画效果,天作之合,比之前只能用js时爽太多。

结论:

1. 如果要灵活定制多个帧以及循环,用animation.

2. 如果要简单的from to 效果,用 transition.

3. 如果要使用js灵活设定动画属性,用transition.
--------------------- 
作者:jdk137 
来源:优快云 
原文:https://blog.youkuaiyun.com/jdk137/article/details/50474129 
版权声明:本文为博主原创文章,转载请附上博文链接!

--------------------- 
作者:jdk137 
来源:优快云 
原文:https://blog.youkuaiyun.com/jdk137/article/details/50474129 
版权声明:本文为博主原创文章,转载请附上博文链接!

CSS transition属性用于创建平滑动画效果,允许元素在两个状态之间平滑过渡,而非立即改变。 ### 使用方法 transition通常使用简写属性控制,其包含以下几个子属性: - `transition-property`:指定CSS属性的name,transition效果。参数可以是`none`(默认值,没有过渡效果)、`all`(监测所有变换属性的属性)、`property`(定义应用过渡效果的CSS属性名称列表,列表以逗号分隔) [^1][^3]。 - `transition-duration`:指定transition效果需要多少秒或毫秒才能完成,例如`transition-duration: 2s;` [^1][^3]。 - `transition-timing-function`:指定transition效果的转速曲线,决定动画的变化速率 [^1]。 - `transition-delay`:定义transition效果开始的时间 [^1]。 以下是一个使用简写属性的示例: ```css div { width: 100px; height: 100px; background-color: red; /* 过渡效果应用于所有属性,持续1秒,开始前延迟0.5秒 */ transition: all 1s 0.5s; } div:hover { width: 200px; height: 200px; background-color: blue; } ``` ### 作用 - 平滑过渡:让元素的属性值在一定时间内逐渐变化,而非瞬间生效 [^4]。 - 增强交互:为按钮、导航栏、卡片等元素添加自然流畅的动画效果,增强用户体验 [^4]。 - 简化动画:无需JavaScript即可实现基础动画,提升性能 [^4]。 ### 示例 以下是一个完整的HTMLCSS示例,展示了图片在悬停时的过渡效果: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> img { width: 200px; height: 150px; transition: all 1s; } img:hover { width: 500px; height: 400px; } </style> </head> <body> <img src="./images/huawei.jpg" alt=""> </body> </html> ``` 在这个示例中,当鼠标悬停在图片上时,图片的宽度高度会在1秒内平滑地过渡到新的尺寸 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值