从之前的学习我们知道,CSS3动画效果包括3部分:变形(transform)、过渡(transition)、动画(animation)。上一章我们已经学习了CSS3变形,这一章再来学习一下CSS3过渡。
在CSS3中,我们可以使用transition属性来将元素的某一个属性从“一个属性值”在指定的时间内平滑地过渡到“另一个属性值”,从而来实现动画效果(请字斟句酌地理解这句话,非常重要)。
CSS变形(transform)呈现的仅仅是一个“结果”,而CSS过渡(transition)呈现的是一个“过程”。这个所谓的“过程”,通俗来说就是一种动画变化过程,如渐渐显示、渐渐隐藏、动画快慢等。绿叶学习网中很多地方都用到了CSS3过渡,当鼠标移到元素上时,都会有一定的过渡效果,小伙伴们可以去体验一下。
语法:
transition: 过渡属性 过渡时间 过渡方式 延迟时间;
说明:
transition是一个复合属性,主要包括4个子属性,如下表所示。
属性 | 说明 |
---|---|
transition-property | 对元素的哪一个属性进行操作 |
transition-duration | 过渡的持续时间 |
transition-timing-function | 过渡的速率方式 |
transition-delay | 过渡的延迟时间(可选参数) |
举例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
div
{
display:inline-block;
padding:5px 10px;
border-radius:5px;
color:white;
background-color:hotpink;
cursor:pointer;
transition:background-color 1s linear 0s;
}
div:hover
{
background-color:purple;
}
</style>
</head>
<body>
<div>从0到1系列</div>
</body>
</html>
默认情况下,预览效果如下图所示。
当鼠标移到div元素上,1秒钟后,预览效果如下图所示。
分析:
凡是涉及CSS3过渡,我们都是结合:hover伪类,来实现过渡效果,在这一章的学习中一定要记住这一点。
在这个例子中,“transition:background-color 1s linear 0s;”表示的是:当鼠标指针移动到元素上时,在1秒钟内让元素的背景颜色从粉色(hotpink)平滑过渡到紫色(purple),其中延迟时间为0秒。实际上这句代码可以等价于:
transition-property: background-color;
transition-duration: 1s;
transition-timing-function: linear;
transition-delay:0;
小伙伴们现在不理解没关系,这里只需要对其有个初步的认识即可。因为在接下来的章节中,我们会对transition的每一个子属性进行详细介绍。
常见问题:
1.什么是复合属性?
例如,我们常见的border属性就是一个复合属性,它是由border-width、border-style、border-color这3个子属性组成。