CSS3动画@keyframes中translate和scale混用出错问题






在写基于网页的2048时,想让一个元素出现时已经通过translate属性固定在指定位置,同时显示动画scale(0)-->scale(1),以实现放大出现效果。

CSS代码为

		@-webkit-keyframes mymove_failed
		{
		0%   {-webkit-transform:translate(50px,50px) scale(0);}
		100% {-webkit-transform:translate(50px,50px) scale(1);}
		}
但是效果却和预想的不一样,研究后发现,将translate和scale的顺序反过来写,即可实现预期的效果,如下:

		@-webkit-keyframes mymove_success
		{
		0%   {-webkit-transform:scale(0) translate(50px,50px);}
		100% {-webkit-transform:scale(1) translate(50px,50px);}
		}

结论:同时使用translate和scale时,应将scale放前面。

只测试了webkit内核的,其他内核未测试,不知道算不算一个BUG。


代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		.success {
			width: 50px;
			height: 50px;
			background-color: #BBF7F7;
			-webkit-animation: mymove_success 1s;
			-webkit-animation-fill-mode: forwards;
		}
		.failed {
			width: 50px;
			height: 50px;
			background-color: #FF6F6F;
			-webkit-animation: mymove_failed 1s;
			-webkit-animation-fill-mode: forwards;
		}
		@-webkit-keyframes mymove_failed
		{
		0%   {-webkit-transform:translate(50px,50px) scale(0);}
		100% {-webkit-transform:translate(50px,50px) scale(1);}
		}
		@-webkit-keyframes mymove_success
		{
		0%   {-webkit-transform:scale(0) translate(50px,50px);}
		100% {-webkit-transform:scale(1) translate(50px,50px);}
		}
	</style>
</head>
<body>
	<div class="success"></div>
	<div class="failed"></div>
</body>
</html>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值