使用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:width2s,height2s, -webkit-transform2s;transition:width2s,height2s,transform2s;
}
div:hover {width: 200px;height: 200px;
-webkit-transform: rotate(180deg);transform: rotate(180deg);
}
</style>
</head>
<body>
<div>Hover me to see thetransitioneffect!</div>
</body>
</html>
上面的代码呈现如下:
相关属性
属性 | 描述 | CSS |
---|---|---|
transition-delay | 延迟转换前 | 3 |
transition-duration | 设置转换的持续时间 | 3 |
transition-property | 在过渡效果中设置CSS属性的名称 | 3 |
transition-timing-function | 设置过渡效果的速度曲线 | 3 |
transition | 设置四个过渡属性的速度属性 | 3 |