CSS3学习笔记之loading动效

版权声明:本文纯属原创,未经同意请勿转载。 https://blog.csdn.net/beiluo77/article/details/88075120

CSS3学习笔记之loading动效

关于web的loading动效,不需要js同样可以实现效果。
以下是html代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<link rel="stylesheet" href="css/style.css" />
	</head>
	<body>
		<div class="box">
			<div class="loader">
				<div class="loading-1">
					<i></i>
				</div>
			</div>
			<div class="loader">
				<div class="loading-2">
					<i></i>
					<i></i>
					<i></i>
					<i></i>
					<i></i>
				</div>
			</div>
			<div class="loader">
				<div class="loading-3">
					<i></i>
					<i></i>
					<i></i>
					<i></i>
					<i></i>
					<i></i>
					<i></i>
					<i></i>
				</div>
			</div>
			<div class="loader">
				<div class="loading-4">
					<i></i>
					<i></i>
					<i></i>
				</div>
			</div>
			<div class="loader">
				<div class="loading-5">
					<i></i>
					<i></i>
				</div>
			</div>
			<div class="loader">
				<div class="loading-6">
					<i></i>
					<i></i>
					<i></i>
					<i></i>
					<i></i>
				</div>
			</div>
		</div>
	</body>
</html>

引入的css文件中,便是 其动效的实现方式

这是第一个动效的代码。
在这里插入图片描述

.box{
	width: 100%;
	padding: 3%;
	box-sizing: border-box;
	overflow: hidden;
}
.box .loader{
	width: 30%;
	float: left;
	height: 200px;
	margin-right: 3%;
	margin-bottom: 3%;
	border: 1px solid #ccc;
	box-sizing: border-box;
	
	display: flex;
	align-items: center;
	justify-content: center;
}
@-webkit-keyframes loading-1{
	0%{
		transform: rotate(0deg);
	}
	50%{
		transform: rotate(180deg);
	}
	100%{
		transform: rotate(360deg);
	}
}
.loading-1{
	width: 35px;
	height: 35px;
	position: relative;
}
.loading-1 i{
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: linear-gradient(transparent 0%,transparent 70%,#333 30%,#333 100%);
	-webkit-animation: loading-1 0.6s linear 0s infinite;
}

第二个
在这里插入图片描述

@-webkit-keyframes loading-2{
	0%{
		transform: scaleY(1);
	}
	50%{
		transform: scaleY(0.4);
	}
	100%{
		transform: scaleY(1);
	}
}
.loading-2 i{
	display: inline-block;
	width: 4px;
	height: 35px;
	border-radius: 2px;
	margin: 0 2px;
	background: #333;
}
.loading-2 i:nth-child(1){
	-webkit-animation: loading-2 1s ease-in 0.1s infinite;
}
.loading-2 i:nth-child(2){
	-webkit-animation: loading-2 1s ease-in 0.2s infinite;
}
.loading-2 i:nth-child(3){
	-webkit-animation: loading-2 1s ease-in 0.3s infinite;
}
.loading-2 i:nth-child(4){
	-webkit-animation: loading-2 1s ease-in 0.4s infinite;
}
.loading-2 i:nth-child(5){
	-webkit-animation: loading-2 1s ease-in 0.5s infinite;
}

loading的效果主要是transform,animation值的不同,代码都是类似的,以下直接上代码:

@-webkit-keyframes loading-3{
	50%{
		transform: scale(0.4);
		opacity: 0.3;
	}
	100%{
		transform: scale(1);
		opacity: 1;
	}
}
.loading-3{
	position: relative;
}
.loading-3 i{
	display: block;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background-color: #333;
	position: absolute;
}
.loading-3 i:nth-child(1){
	top: 25px;
	left: 0px;
	-webkit-animation: loading-3 1s ease 0s infinite;
}
.loading-3 i:nth-child(2){
	top: 17px;
	left: 17px;
	-webkit-animation: loading-3 1s ease -0.12s infinite;
}
.loading-3 i:nth-child(3){
	top: 0px;
	left: 25px;
	-webkit-animation: loading-3 1s ease -0.24s infinite;
}
.loading-3 i:nth-child(4){
	top: -17px;
	left: 17px;
	-webkit-animation: loading-3 1s ease -0.36s infinite;
}
.loading-3 i:nth-child(5){
	top: -25px;
	left: 0px;
	-webkit-animation: loading-3 1s ease -0.48s infinite;
}
.loading-3 i:nth-child(6){
	top: -17px;
	left: -17px;
	-webkit-animation: loading-3 1s ease -0.6s infinite;
}
.loading-3 i:nth-child(7){
	top: 0px;
	left: -25px;
	-webkit-animation: loading-3 1s ease -0.72s infinite;
}
.loading-3 i:nth-child(8){
	top: 17px;
	left: -17px;
	-webkit-animation: loading-3 1s ease -0.84s infinite;
}
@-webkit-keyframes loading-4{
	0%{
		transform: scale(0);
		opacity: 0;
	}
	50%{
		opacity: 1;
	}
	100%{
		transform: scale(1);
		opacity: 0;
	}
}
.loading-4{
	width: 60px;
	height: 60px;
	position: relative;
}
.loading-4 i{
	display: block;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background-color: #333333;
	position: absolute;
	left: 0;
	top: 0;opacity: 0;
}
.loading-4 i:nth-child(1){
	-webkit-animation: loading-4 1s linear 0s infinite;
}
.loading-4 i:nth-child(2){
	-webkit-animation: loading-4 1s linear 0.2s infinite;
}
.loading-4 i:nth-child(3){
	-webkit-animation: loading-4 1s linear 0.4s infinite;
}

@-webkit-keyframes loading-5{
	0%{
		transform: rotate(0deg) scale(1);
	}
	50%{
		transform: rotate(180deg) scale(0.6);
	}
	100%{
		transform: rotate(360deg) scale(1);
	}
}
.loading-5{
	width: 40px;
	height: 40px;
	position: relative;
}
.loading-5 i{
	display: block;
	border: 2px solid #333333;
	border-color: transparent #333333; 
	border-radius: 50%;
	position: absolute;
}
.loading-5 i:first-child{
	width: 35px;
	height: 35px;
	top: 0;
	left: 0;
	-webkit-animation: loading-5 1s ease-in-out 0s infinite;
}
.loading-5 i:last-child{
	width: 15px;
	height: 15px;
	top: 10px;
	left: 10px;
	-webkit-animation: loading-5 1s ease-in-out 0.5s infinite reverse;
}

@-webkit-keyframes loading-6{
	0%{
		left: 100px;
		top: 0px;
	}
	80%{
		left: 0px;
		top: 0px;
	}
	85%{
		left: 0px;
		top: -20px;
		width: 20px;
		height: 20px;
	}
	90%{
		width: 40px;
		height: 20px;
	}
	95%{
		left: 100px;
		top: -20px;
		width: 20px;
		height: 20px;
	}
	100%{
		left: 100px;
		top: 0px;
	}
}

.loading-6{
	width: 80px;
	height: 20px;
	position: relative;
}
.loading-6 i{
	display: block;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background-color: #333333;
	margin-right: 10px;
	position: absolute;
}
.loading-6 i:nth-child(1){
	-webkit-animation: loading-6 2s linear 0s infinite;
}
.loading-6 i:nth-child(2){
	-webkit-animation: loading-6 2s linear -0.4s infinite;
}
.loading-6 i:nth-child(3){
	-webkit-animation: loading-6 2s linear -0.8s infinite;
}
.loading-6 i:nth-child(4){
	-webkit-animation: loading-6 2s linear -1.2s infinite;
}
.loading-6 i:nth-child(5){
	-webkit-animation: loading-6 2s linear -1.6s infinite;
}

第3个~第六个的动效如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加一个js方法,以上几种动效便可用于网页加载前跳出的动画效果了!
离成为大神又近了一步!

猜你喜欢

转载自blog.csdn.net/beiluo77/article/details/88075120
今日推荐