阅读(3942)

CSS3 过渡

最后一次修改 2017年08月04日


使用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