CSS3动画Transition属性详解及示例演示

今天来学习一下 CSS3 的动画效果 Transition,CSS3 规定 transition 允许CSS的属性值在一定的时间区间内平滑地过渡,这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值。

一、transition 兼容写法

W3C 标准写法:元素选择器 { transition: 运动样式 持续时间 运动形式 延迟时间; }

Mozilla内核:元素选择器 { -moz-transition: 运动样式 持续时间 运动形式 延迟时间; }

Webkit内核:元素选择器 { -webkit-transition: 运动样式 持续时间 运动形式 延迟时间; }

Opera内核:元素选择器 { -o-transition: 运动样式 持续时间 运动形式 延迟时间; }

二、transition各属性解释

1、transition-property 运动样式

语法:

transition-property :all || [attr] || none

注释:

a、all:元素产生任何属性值变化时都将执行 transition 效果
b、attr:指定要运动的样式
c、none:transition 马上停止执行

2、transition-duration 持续时间

transition-duration 是指定元素转换过程的持续时间,单位为秒(s),此属性可以作用于所有元素,包括 :before 和 :after 伪元素。

默认值是 0,即时变换。

3、transition-timing-function 指定运动形式

语法:

transition-timing-function : ease || linear || ease-in() | ease-out || ease-in-out || cubic-bezier(n, n, n, n)

注释:

a、linear:以匀速开始至结束的过渡效果,相当于 cubic-bezier(0,0,1,1)
b、ease:以慢速开始,然后变快,再以慢速结束的过渡效果,相当于 cubic-bezier(0.25,0.1,0.25,1)
c、ease-in:加速的过渡效果,相当于 cubic-bezier(0.42,0,1,1)
d、ease-out:减速的过渡效果,相当于 cubic-bezier(0,0,0.58,1)
e、ease-in-out:先加速再减速的效果,相当于 cubic-bezier(0.42,0,0.58,1)
f、cubic-bezier(n, n, n, n):自定义一个时间曲线,n 为 0 至 1 之间的值

4、transition-delay 延迟时间

transition-delay是用来指定一个动画开始执行的时间,也就是说当改变元素属性值后多长时间开始执行transition效果,单位为s(秒),其使用和transition-duration极其相似,也可以作用于所有元素,包括:before和:after伪元素。

默认值是 0,也就是变换立即执行,没有延迟。

三、实例演示

最后看一下实例,鼠标滑过,图片放大并微微侧旋。Demo演示效果

<style>
.listImage {
	overflow:hidden; width:440px; margin:0 auto;
}

.listImage img {
	max-width:100% !important; height:auto; margin-bottom:19px;
}

.listImage a img {
	transition:all .4s ease-in-out; -webkit-transition:all .4s ease-in-out;
}

.listImage a:hover img {
	transform:rotate(8deg) scaleX(1.9) scaleY(1.9); -webkit-transform:rotate(8deg) scaleX(1.9) scaleY(1.9);
}
</style>


<div class="listImage">
	<a href="https://yangjunwei.com" target="_blank">
		<img width="620" height="200" src="http://ww4.sinaimg.cn/mw690/418acfafjw1exlstb25wbj20c806yjs8.jpg" alt="?B???">
	</a>
</div>