css3动画的"消失"””

本文记录了一个关于CSS3动画的小陷阱:作者在实现一个简单的元素变形动画时,遇到了动画结束后元素背景消失的问题。通过逐步排查,最终发现是由于动画结束时背景颜色设置为透明导致的视觉误解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做了一件特别丢人的事情,用css3写一个最基础最简单的动画

 

 

元素从左上角开始,到200px 处转换成圆形  到400px处转换成方形

第一次写的时候,我的代码是这样写的:


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		div{
			position: absolute;
			width: 100px;
			height: 100px;
			top: 0;
			animation:mobbile 3s;
		}

		@keyframes mobbile{
			0%{
				left: 0;
				background-color: #FFA300;	
			}
			50%{
				left: 200px;
				border-radius: 50%;
				background-color: #0f0;
			}
			100%{
				left: 400px;
				background-color: #00f;
			}
		}
	</style>
</head>
<body>
	<div></div>
</body>
</html>


 

结果是每当这个动画执行结束之后,这个div就会“消失”,然后我就反复的检查我的代码,看一下是不是哪儿搞错了,结果是看了一遍又一遍都没有问题啊,那这是咋回事啊,没办法,于是我就在这个div里加了文本,结果发现当动画执行结束之后,这个div并没有消失,只是没有了背景色了而已,然后再回去看自己的代码,只想说一句,哎呀我去!自己把自己给坑住了,所以在以后写东西的时候,即使再简单,再基础,也要细心一点,认真一点。

下面是我改后的代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		div{
			position: absolute;
			width: 100px;
			height: 100px;
			top: 0;
			animation:mobbile 3s;
		}

		@keyframes mobbile{
			0%{
				left: 0;
				background-color: #FFA300;	
			}
			50%{
				left: 200px;
				border-radius: 50%;
				background-color: #0f0;
			}
			100%{
				left: 400px;
				background-color: #00f;
			}
		}
	</style>
</head>
<body>
	<div></div>
</body>
</html>


 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值