css3里的transition属性的过渡效果

css3里的transition属性可以控制页面元素的过渡效果,格式如下:

transition: transition-property transition-duration transition-timing-function transition-delay ;

transition-property:css属性,比如color  width  background等,跟jquery的动画只能设置数值类型属性不同

transition-duration:过渡效果持续时长,比如1s   0.5s,在css里面0可以省略,简写为.5s

transition-timing-function:过渡使用的函数,有先快后慢等等之分,区别不大,常见的函数有linear  ease ease-in  ease-out ease-in-out

transition-delay:过渡开始延时时长   比如 1s   .5s

注意:一般配合伪类:hover使用

来看一个例子,最终效果如图:

GIF2.gif

下面是实现这个效果的代码,html代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>transaction</title>	 
</head>
<body>
 <div></div>
 <section>
		<p><a href="#">超链接</a></p>
		<p><a href="#">超链接</a></p>
		<p><a href="#">超链接</a></p>
 </section>
</body>
</html>

css代码:

<style>
div{
    width:100px;
    height:100px;
    background:blue;
    -moz-transition:width 2s; /* Firefox 4 */
    -webkit-transition:width 2s; /* Safari and Chrome */
    -o-transition:width 2s; /* Opera */
    transition:width 2s;
}
div:hover{
    width:300px;
}
section a{
	transition:padding 2s,color 1s  ease-in 1s;
	transition-property:background 2s;
	transition-duration:.5s;
}
section a:hover{
	padding-left:20px;
	color:red;
	background:green;
}
</style>	

代码解释:

    transition:width 2s,表示width的变化需要2s来完成,那么width怎么变化?width从什么时候开始触发这个变化?

    看第一个问题:    width怎么变化?

    width从100px变为300px。因为当div被鼠标hover的时候定义了width变为300px。

    第二个问题:width从什么时候开始触发这个变化?

     css里面写着呢,当hover的时候发生变化。

总结:

    css属性的过渡快慢、是否均匀过渡等都是由transition来控制的。但是transition和animation动画不同。animation通过@keyframe可以精准地控制当前帧的属性值,而transition不能指定每帧的属性值,所以相对而言animation的功能更加灵活。另外,animation通过模拟属性值改变来实现动画,动画结束之后元素的属性没有变化,而transition确实改变了元素的属性值,动画结束之后元素的属性发生了变化。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值