animation动画妙用

前端的各位道友们,大家好!今天来聊聊animation动画的妙用,众多周知,通过使用animation可以让元素运动起来。只要能动,我们就可以实现很多有趣的效果,比如网页加载不出来时显示的loading小动画

比如这个一直转圈圈的线条,怎么才能实现呢?

1.gif

首先我们要思考如何做出这个弧形的线条,其次让它自己转圈起来

我们可以通过做一个正方形,给它的边框加一个宽度,颜色透明,然后让这个正方形的边框变成圆形,再给上边框一个颜色,这样有弧度的线条就完成啦~

接下来再让它旋转起来,给它添加一个旋转动画+1s的线性过渡和无限循环,我们的转圈loading就完成啦~

结构代码如下:

<section>
	<article></article>
</section>
复制代码

样式代码如下:

section{
	width: 300px;
	height: 300px;
	margin:0 auto;	
@keyframes rot{
	0%{
		transform:rotate(0deg);
	}
	100%{
		transform:rotate(360deg);
	}
}
article{
	width: 40px;
	height: 40px;
	border:4px solid #fff;
	border-top-color:#ccc;
	border-radius: 50%;
	float: left;
	margin-top: 50px;
	animation: rot 1s linear infinite;
}
复制代码

通过上面的案例,我们还可以制作线条依次伸缩的loading动画

思路:制作五个线条,让他们依次按照垂直中心点缩小50%,第一个线条先运动,后面的依次延迟0.1s

让我们一起来写一下,结构代码如下:

<section>
	<aside>
		<div></div>
		<div></div>
		<div></div>
		<div></div>
		<div></div>
	</aside>
</section>
复制代码

样式代码如下:

section aside{
	margin: 50px;
	float: left;
}
section aside div{
	width: 4px;
	height: 35px;
	background-color: #ccc;
	margin: 2px;
	display: inline-block;	
}
@keyframes loding{
	0%{
		transform:scaleY(1);
	}
	50%{
		transform:scaleY(0.5);
	}
	100%{
		transform:scaleY(1);
	}
}
section aside div:nth-child(1){
	animation: loding 1s 0.1s infinite;
}
section aside div:nth-child(2){
	animation: loding 1s 0.2s infinite;
}
section aside div:nth-child(3){
	animation: loding 1s 0.3s infinite;
}
section aside div:nth-child(4){
	animation: loding 1s 0.4s infinite;
}
section aside div:nth-child(5){
	animation: loding 1s 0.5s infinite;
}
复制代码

总结:

1.动画关键帧的定义,关键帧定义可以实现各种动画效果的运动过程。

2.有一些初学的前端道友们不知道animation要添加给谁?animation添加给要改变的元素。

3.运动时间可根据需求来设置。

4.动画过渡类型给大家推荐一个动画类型的库:cubic-bezier.com/

各位前端的道友们,我们的animation动画有点意思吧,来来来...接着奏乐,接着舞,让我们敲起来吧。

Supongo que te gusta

Origin juejin.im/post/7075514780286451719
Recomendado
Clasificación