CSS3 过渡
使用CSS3过渡,我们可以通过改变CSS属性来创建动画。
我们可以控制时间,从值到值。
例如,我们可以在一秒钟内将元素的颜色从白色更改为黑色。
下表列出了所有过渡属性:
transition - 用于设置四个转换属性的简写属性
transition-delay - 指定过渡效果何时开始
transition-duration - 指定完成转换所需的秒数或毫秒数
transition-property - 指定转换所用的CSS属性的名称
transition-timing-function - 指定转换的速度曲线
创建动画
要使用CSS3过渡创建动画,我们必须指定两个值:
更改CSS属性
效果持续时间
以下代码为width属性添加了一个过渡效果,持续时间为2秒。
我们首先设置目标属性和持续时间。
div { -webkit-transition: width 2s; /* For Safari 3.1 to 6.0 */ transition: width 2s; }
如果未指定持续时间部分,则默认值为0,并且不会有转换。
我们必须触发属性变化。以下代码使用鼠标悬停事件触发元素上的动画。
div:hover { width: 300px; }
这里是完整的源代码。将鼠标悬停在上面的div元素上,查看过渡效果。
<!DOCTYPE html> <html> <head> <style> div { width: 100px; height: 100px; background: black; -webkit-transition: width 2s; transition: width 2s; } div:hover { width: 300px; } </style> </head> <body> <div>Hi</div> </body> </html>
转换中的多个值
我们可以通过用逗号分隔属性来为多个CSS属性添加过渡效果。
<!DOCTYPE html> <html> <head> <style> div { width: 100px; height: 100px; background: black; -webkit-transition: width 2s, height 2s, -webkit-transform 2s; transition: width 2s, height 2s, transform 2s; } div:hover { width: 200px; height: 200px; -webkit-transform: rotate(180deg); transform: rotate(180deg); } </style> </head> <body> <div>Hover me to see the transition effect!</div> </body> </html>
上面的代码呈现如下:
相关属性
属性 | 描述 | CSS |
---|---|---|
transition-delay | 延迟转换前 | 3 |
transition-duration | 设置转换的持续时间 | 3 |
transition-property | 在过渡效果中设置CSS属性的名称 | 3 |
transition-timing-function | 设置过渡效果的速度曲线 | 3 |
transition | 设置四个过渡属性的速度属性 | 3 |
使用CSS3过渡,我们可以通过改变CSS属性来创建动画。
我们可以控制时间,从值到值。
例如,我们可以在一秒钟内将元素的颜色从白色更改为黑色。
下表列出了所有过渡属性:
transition - 用于设置四个转换属性的简写属性
transition-delay - 指定过渡效果何时开始
transition-duration - 指定完成转换所需的秒数或毫秒数
transition-property - 指定转换所用的CSS属性的名称
transition-timing-function - 指定转换的速度曲线
创建动画
要使用CSS3过渡创建动画,我们必须指定两个值:
更改CSS属性
效果持续时间
以下代码为width属性添加了一个过渡效果,持续时间为2秒。
我们首先设置目标属性和持续时间。
div { -webkit-transition: width 2s; /* For Safari 3.1 to 6.0 */ transition: width 2s; }
如果未指定持续时间部分,则默认值为0,并且不会有转换。
我们必须触发属性变化。以下代码使用鼠标悬停事件触发元素上的动画。
div:hover { width: 300px; }
这里是完整的源代码。将鼠标悬停在上面的div元素上,查看过渡效果。
<!DOCTYPE html> <html> <head> <style> div { width: 100px; height: 100px; background: black; -webkit-transition: width 2s; transition: width 2s; } div:hover { width: 300px; } </style> </head> <body> <div>Hi</div> </body> </html>
转换中的多个值
我们可以通过用逗号分隔属性来为多个CSS属性添加过渡效果。
<!DOCTYPE html> <html> <head> <style> div { width: 100px; height: 100px; background: black; -webkit-transition: width 2s, height 2s, -webkit-transform 2s; transition: width 2s, height 2s, transform 2s; } div:hover { width: 200px; height: 200px; -webkit-transform: rotate(180deg); transform: rotate(180deg); } </style> </head> <body> <div>Hover me to see the transition effect!</div> </body> </html>
上面的代码呈现如下:
相关属性
属性 | 描述 | CSS |
---|---|---|
transition-delay | 延迟转换前 | 3 |
transition-duration | 设置转换的持续时间 | 3 |
transition-property | 在过渡效果中设置CSS属性的名称 | 3 |
transition-timing-function | 设置过渡效果的速度曲线 | 3 |
transition | 设置四个过渡属性的速度属性 | 3 |