css3替代JavaScript实现hover变色功能

在项目中遇到了hover变色的功能,一开始我使用事件onmouseover和onmouseout来监听是否hover,然后用JavaScript函数进行变色,如下:

//当鼠标移入时圆角矩形变色。
	function change_rounded_1(val){
		if(val=="mfsy"){
			mfsy.style.backgroundColor="#F0EA00";
		}else if(val=="tyys"){
			tyys.style.backgroundColor="#66CCFF";
		}
	}	
//当鼠标移出时圆角矩形恢复本来的颜色
	function change_rounded_2(){
		mfsy.style.backgroundColor="#F2A516";
		tyys.style.backgroundColor="#2A55A7";
	}


后来发现css3中可以 使用transition属性直接实现,而不需要引入JavaScript,代码如下:

#mfsy{
 	background-color:#FEAD27;
	-o-transition: background-color .3s ease-in .0s; /* Opera */
	-webkit-transition:background-color .3s ease-in .0s;
	-moz-transition:background-color .3s ease-in .0s;
	transition:background-color .3s ease-in .0s;
}
#mfsy:hover{
	background-color: #F0EA00;
}

使用transition属性,可以设置css属性的渐变,本例中:


transition:background-color .3s ease-in .0s;

语句的意思是:要渐变的属性为background-color;渐变过程持续3s;渐变的方式为ease-in;延迟0s后开始渐变。


渐变方式可以简单的理解为变化速度的曲线,有多种选择,ease-in是其中一种。


上述方法是transition属性的简写方法,实际上他还可以分割写为四个单独的属性,上边的语句分割后的写法为:

transition-property:background-color;
transition-duration: .3s;
transition-timing-function: ease-in;
transition-delay: 0s;


若是需要改变多个属性的渐变,可以使用分开写的方式,属性事件用,分隔,顺序相互对应即可。






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值