css animation实现动画效果

一、介绍

animation是CSS3中的一个简写属性,可以通过设置六个动画属性来实现动画效果。这六个属性分别为动画名称、动画时间、速度曲线、动画延迟、播放次数及动画是否反向播放。
语法格式:

animation: name duration timing-function delay iteration-count direction fill-mode play-state;

属性值说明取值
animation-name指定要绑定到选择器的关键帧的名称字符串
animation-duration动画指定需要多少秒或毫秒完成如:5s
animation-timing-function设置动画将如何完成一个周期如:linear 匀速
animation-delay设置动画在启动前的延迟间隔。如:3s
animation-iteration-count定义动画的播放次数。1(动画播放次数为1次)
animation-direction指定是否应该轮流反向播放动画。如:alternate(设置动画为反向播放 )
animation-fill-mode规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。如:none-不做任何改变
animation-play-state指定动画是否正在运行或已暂停。如:running-执行动画

二、关键帧的书写

第一种写法:

div
{
	width:100px;
	height:100px;
	background:red;
	position:relative;
	animation:myfirst 5s infinite;
	animation-direction:alternate;
}
@keyframes right
{
	0%   {background:red; left:0px; top:0px;}
	25%  {background:yellow; left:200px; top:0px;}
	50%  {background:blue; left:200px; top:200px;}
	75%  {background:green; left:0px; top:200px;}
	100% {background:red; left:0px; top:0px;}
}

其中right就是关键帧的名字。
animation:myfirst 5s 1;myfirst就是关键帧的名字,5s表示整个动画完成的时间,infinite(无数次)代表动画执行的次数。

  • 0% {background:red; left:0px; top:0px;}的意思就是从(0,0)坐标开始,此时元素在左上角不动。
    在这里插入图片描述

  • 25% {background:yellow; left:200px; top:0px;}的意思就是从向左移动200px,高度为0,此时元素在右上角。
    在这里插入图片描述

  • 50% {background:blue; left:200px; top:200px;}的意思就是从保持左边200px不变,将高度增加200px,这样就向下移动了200px,此时元素在右下角。
    在这里插入图片描述

  • 75% {background:green; left:0px; top:200px;}的意思就是从保持高度不变,将左边距归0,这样元素就使从200px移动到0px,相当于就是向右移动了,此时元素在左下角。
    在这里插入图片描述

  • 100% {background:red; left:0px; top:0px;}的意思就是将左边距和上边距都归0,就相当于回到了最开始的位置,此时元素在左上角。
    **效果:**
    第二种写法:
    当只有0%和100%时可以用from to表示,from代表开始,to代表结束。

div
{
	width:100px;
	height:100px;
	background:red;
	position:relative;
	animation:mymove 5s infinite;
	animation-direction:alternate;
}
@keyframes mymove
{
	from {left:0px;}
	to {left:200px;}
	/*
	上面的from to等价于下面的0% 100%,两者选其一
	*/
	0% {left:0px;}
	100% {left:200px;}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝朽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值