CSS3 过渡

由 wadewoshi 创建,Carrie 最后一次修改 2017-01-05

使用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
以上内容是否对您有帮助:
硅心科技
二维码
建议反馈
二维码