CSS transition 属性

CSS transitions 属性提供了一种在更改CSS属性时控制动画速度的方法。可以让属性变化成为一个持续一段时间的过程,而不是立即生效的。比如,将一个元素的颜色从白色改为黑色,通常这个改变是立即生效的,使用 CSS transitions 后该元素的颜色将逐渐从白色变为黑色,按照一定的曲线速率变化。这个过程可以自定义。

通常将两个状态之间的过渡称为隐式过渡(implicit transitions),因为开始与结束之间的状态由浏览器决定。

CSS transitions 可以决定哪些属性发生动画效果 (明确地列出这些属性),何时开始 (设置 delay),持续多久 (设置 duration) 以及如何动画 (定义timing function,比如匀速地或先快后慢)。


实例

把鼠标指针放到 div 元素上,其宽度会从 100px 逐渐变为 300px:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. div
  6. {
  7. width:100px;
  8. height:100px;
  9. background:blue;
  10. transition:width 2s;
  11. -moz-transition:width 2s; /* Firefox 4 */
  12. -webkit-transition:width 2s; /* Safari and Chrome */
  13. -o-transition:width 2s; /* Opera */
  14. }
  15. div:hover
  16. {
  17. width:300px;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <div></div>
  23. <p>请把鼠标指针移动到蓝色的 div 元素上,就可以看到过渡效果。</p>
  24. <p><b>注释:</b>本例在 Internet Explorer 中无效。</p>
  25. </body>
  26. </html>

浏览器支持

表格中的数字注明了完全支持该属性的首个浏览器版本。

带 -webkit-、-moz- 或 -o- 的数字表示使用前缀的首个版本。

属性
transition26.04.0 -webkit-10.016.04.0 -moz-6.13.1 -webkit-12.110.5 -o-

定义和用法

transition 属性是一个简写属性,用于设置四个过渡属性:

  • transition-property
  • transition-duration
  • transition-timing-function
  • transition-delay

注释:请始终设置 transition-duration 属性,否则时长为 0,就不会产生过渡效果。

默认值:all 0 ease 0
继承性:no
版本:CSS3
JavaScript 语法:object.style.transition="width 2s"

语法

  1. transition: property duration timing-function delay;
描述
transition-property规定设置过渡效果的 CSS 属性的名称。
transition-duration规定完成过渡效果需要多少秒或毫秒。
transition-timing-function规定速度效果的速度曲线。
transition-delay定义过渡效果何时开始。

分类导航