9.1、@keyframes关键帧

@keyframes定了一个动画,可以由多个帧组成。例如

@keyframes my_name{
	0%{
		transform: translateY(-100px);
	}
	50%{
		transform: translateY(-50px);
	}
	100%{
		transform: translateY(100px);
	}
}

可知my_name动画由两帧组成,第一帧从0%到50%,第二帧从50%到100%,0%、50%、100%指的是animation-duration的时间比例。比如animation-duration:2s,则前1s内,从transform: translateY(-100px)运动到transform: translateY(-50px);处;在后1s内,从transform: translateY(-50px)运动到transform: translateY(100px)。

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<style type="text/css">
			#wrap{
				position: absolute;
				left: 0;
				right: 0;
				top: 0;
				bottom: 0;
				margin: auto;
				width: 300px;
				height: 300px;
				border: 1px solid;
			}
			
			#wrap > .box{
				position: absolute;
				left: 0;
				right: 0;
				top: 0;
				bottom: 0;
				margin: auto;
				width: 100px;
				height: 100px;
				border: 1px solid;
				background: pink;
				border-radius: 50%;
				/*动画*/
				animation-name: my_name;
				animation-duration: 3s;
				animation-iteration-count: 2;
				animation-direction: alternate;
				animation-fill-mode: both;
			}
			
			@keyframes my_name{
				0%{
					transform: translateY(-100px);
				}
				50%{
					transform: translateY(-50px);
				}
				100%{
					transform: translateY(100px);
				}
			}

		</style>
	</head>
	<body>
		<div id="wrap">
			<div class="box">
				
			</div>
		</div>
	</body>
</html>

当动画开始时,小球在第1s内由-100px运动到-50px,在第2s内由-50px运动到100px处。由于animation-iteration-count:2,表示帧要重复两次,是对my_name中的所有帧都重复两次,所以,在第3s内再由100px处运动到-50px处,最后,由-50px处运动到-100px处,结束动画。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值