css3transition属性详解

1. CSS3 Transition是什么?

CSS3 Transition是CSS3中一种动画效果,用于在用户执行操作(如:鼠标悬停,点击等)时产生不同的过渡效果。它可以使页面的变化更加流畅自然,提升用户体验。它能够让元素从一个状态平滑地过渡到另一种状态。CSS3 Transition可以应用与所有可见元素,包括背景颜色,文本颜色,大小和位置等属性。

2. CSS3 Transition的语法

CSS3 Transition的语法比较简单,主要包括以下几个部分:

1. transition-property:是指过渡的属性名称。

2. transition-duration:是指过渡效果执行时间。

3. transition-timing-function:是指过渡效果的计时方式。

4. transition-delay:是指过渡效果执行的延迟时间。

其中,transition-property和transition-duration是必填的,而transition-timing-function和transition-delay是可选的,如果不填写则使用默认值。

下面是CSS3 Transition的基本语法示例:

div {

transition-property: width;

transition-duration: 2s;

transition-timing-function: ease-in-out;

transition-delay: 1s;

}

2.1 transition-property

transition-property是指需要应用过渡效果的CSS属性名称。当有多个属性时,可以用逗号分开。

以下是一个例子:

.box {

width: 100px;

height: 100px;

background-color: blue;

transition-property: width, height, background-color;

}

.box:hover {

width: 200px;

height: 200px;

background-color: green;

}

上述代码,当鼠标悬停在元素上时,宽度,高度和背景颜色都会发生过渡效果。

2.2 transition-duration

transition-duration是指过渡效果执行的时间。它通常以秒或毫秒为单位表示。默认值为0,表示没有过渡效果。

以下是一个例子:

.box {

width: 100px;

height: 100px;

background-color: blue;

transition-property: width, height, background-color;

transition-duration: 2s;

}

.box:hover {

width: 200px;

height: 200px;

background-color: green;

}

上述代码,当鼠标悬停在元素上时,宽度,高度和背景颜色都会在2秒内执行过渡效果。

2.3 transition-timing-function

transition-timing-function是指控制过渡效果执行的计时方式。CSS3提供了多种计时函数,如:ease(默认值),linear,ease-in,ease-out,ease-in-out,cubic-bezier等等。默认值为“ease”。

以下是一个例子:

.box {

width: 100px;

height: 100px;

background-color: blue;

transition-property: width, height, background-color;

transition-duration: 2s;

transition-timing-function: linear;

}

.box:hover {

width: 200px;

height: 200px;

background-color: green;

}

上述代码,当鼠标悬停在元素上时,宽度,高度和背景颜色都会在2秒内线性地执行过渡效果。

2.4 transition-delay

transition-delay是指过渡效果执行的延迟时间。默认值为0,表示没有延迟,立即执行过渡效果。

以下是一个例子:

.box {

width: 100px;

height: 100px;

background-color: blue;

transition-property: width, height, background-color;

transition-duration: 2s;

transition-timing-function: linear;

transition-delay: 1s;

}

.box:hover {

width: 200px;

height: 200px;

background-color: green;

}

上述代码,当鼠标悬停在元素上时,宽度,高度和背景颜色都会在延迟1秒后,持续2秒的时间线性地执行过渡效果。

3. CSS3 Transition的实例演示

下面是CSS3 Transition的实例演示,展示了如何使用CSS3 Transition实现动画效果。

3.1 实例演示1:简单的过渡效果

以下是代码:

.box1 {

width: 100px;

height: 100px;

background-color: blue;

transition-property: background-color;

transition-duration: 1s;

}

.box1:hover {

background-color: green;

}

以下是演示效果:

3.2 实例演示2:多个属性过渡

以下是代码:

.box2 {

width: 100px;

height: 100px;

background-color: blue;

transition-property: width, height, background-color;

transition-duration: 1s;

}

.box2:hover {

width: 200px;

height: 200px;

background-color: green;

}

以下是演示效果:

3.3 实例演示3:计时函数过渡

以下是代码:

.box3 {

width: 100px;

height: 100px;

background-color: blue;

transition-property: background-color;

transition-duration: 1s;

transition-timing-function: ease-in-out;

}

.box3:hover {

background-color: green;

}

以下是演示效果:

3.4 实例演示4:延迟效果过渡

以下是代码:

.box4 {

width: 100px;

height: 100px;

background-color: blue;

transition-property: background-color;

transition-duration: 1s;

transition-delay: 1s;

}

.box4:hover {

background-color: green;

}

以下是演示效果:

4. 总结

CSS3 Transition是一种提高网页交互性的途径,它可以用于实现各种有趣的效果,如:hover,点击等等。使用CSS3 Transition的好处是不需要使用JS代码,而且具有很好的兼容性,可以应用于大多数主流浏览器。需要注意的是,使用CSS3 Transition时应该合理控制计时方式、延迟效果和过渡时间,从而达到不同的过渡效果。