loader

3 results found!

Loading Spinners in CSS

 Techmates
 13 Mar, 2018

In this post we're creating the animated loading spinners with pure CSS.

In this demo we're sharing the dot spinner, moon spinners, rotators, half circle & square spinners.

HTML Structure

 <div class="spinner dot"></div>
<div class="spinner line"><span></span></div>
<div class="spinner line two"><span></span></div>
<div class="spinner line three"><span></span></div>
<div class="spinner moon"></div>
<div class="spinner moon two"></div>
<div class="spinner moon three"></div>
<div class="spinner filled half"></div>
<div class="spinner filled fourth">
	<div></div>
	<div></div>
</div>
<div class="loader solid square rotate"></div>
<div class="loader solid circle rotate"></div>
<div class="loader solid square fade"></div>
<div class="loader solid circle fade"></div>
<div class="loader circle-full blink-half"></div>
<div class="loader circle-full blink"></div>
<div class="loader circle-full zoomIO-half"></div>
<div class="loader circle-full zoomIO"></div>

CSS Styles


.box {
	border-bottom: 1px solid #ccc;
}
.card {
	position: relative;
	width: 175px;
	height: 200px;
	display: inline-block;
} 

.card > div {
	position: relative;
	top: 50%;
	-webkit-transform: translateY(-50%);
	-moz-transform: translateY(-50%);
	-o-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
}
.col {
	min-width: 20%;
	float: left;
}
.spinner {
	position: relative;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	display: inline-block;
	margin: 0 40px;
}
/* Dot spinner */
.spinner.dot {
	border: 1px solid #e5e5e5;
	border-radius: 50px;
	-webkit-animation: spin 1s linear infinite;
	-moz-animation: spin 1s linear infinite;
	-ms-animation: spin 1s linear infinite;
	-o-animation: spin 1s linear infinite;
	animation: spin 1s linear infinite;
}
.spinner.dot:after {
	position: absolute;
	content: " ";
	top: 5px;
	left: 5px;
	width: 5px;
	height: 5px;
	border-radius: 5px;
	background: #4c4c4c;
	z-index: 9;
}
/* Moon style */
.spinner.moon:after {
	position: absolute;
	content: " ";
	top: 5px;
	left: 5px;
	width: 50px;
	height: 50px;
	border-radius: 50px;
	border-right: 2px solid #4c4c4c;
	-webkit-animation: spin 1s linear infinite;
	-moz-animation: spin 1s linear infinite;
	-ms-animation: spin 1s linear infinite;
	-o-animation: spin 1s linear infinite;
	animation: spin 1s linear infinite;
	z-index: 9;
}
.spinner.moon.two:after {
	border-left: 2px solid #4c4c4c;
}
.spinner.moon.three:after {
	border-top: 2px solid #4c4c4c;
	border-bottom: 2px solid #4c4c4c;
}
/* Line spinner */
.spinner.line span {
	position: relative;
	display: inline-block;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	border: 3px solid transparent;
	border-top: 3px solid #4c4c4c;
	-webkit-animation: spin 1s linear infinite;
	-moz-animation: spin 1s linear infinite;
	-ms-animation: spin 1s linear infinite;
	-o-animation: spin 1s linear infinite;
	animation: spin 1s linear infinite;
}
.spinner.line.two span {
	border-bottom: 3px solid #4c4c4c;
}
.spinner.line.three span {
	border-left: 3px solid #4c4c4c;
	border-right: 3px solid #4c4c4c;
}
.spinner.filled.half:before,
.spinner.filled.half:after {
	position: absolute;
	content: " ";
	height: 25px;
	width: 50px;
	background: #EA4335;
	-webkit-animation: spin 1s linear infinite;
	-moz-animation: spin 1s linear infinite;
	-ms-animation: spin 1s linear infinite;
	-o-animation: spin 1s linear infinite;
	animation: spin 1s linear infinite;
}
.spinner.filled.half:before {
	border-top-left-radius: 50px;
	border-top-right-radius: 50px;
	transform-origin: bottom;
}
.spinner.filled.half:after {
	top: 50%;
	background: #FACD47;
	border-bottom-left-radius: 50px;
	border-bottom-right-radius: 50px;
	transform-origin: top;
}
.spinner.filled.fourth div:before,
.spinner.filled.fourth div:after {
	position: absolute;
	content: "";
	width: 25px;
	height: 25px;
}
.spinner.filled.fourth div {
	display: inline-block;
	float: left;
}
.spinner.filled.fourth div:before,
.spinner.filled.fourth div:after {
	-webkit-animation: spin 1s linear infinite;
	-moz-animation: spin 1s linear infinite;
	-ms-animation: spin 1s linear infinite;
	-o-animation: spin 1s linear infinite;
	animation: spin 1s linear infinite;
}
.spinner.filled.fourth div:first-child:before {
	top: 0;
	left: 0;
	border-top-left-radius: 50px;
	background: #FACD47;
	transform-origin: bottom right;
}
.spinner.filled.fourth div:first-child:after {
	top: 0;
	right: 0;
	border-top-right-radius: 50px;
	background: #EA4335;
	transform-origin: bottom left;
}
.spinner.filled.fourth div:nth-child(2):before {
	bottom: 0;
	left: 0;
	border-bottom-left-radius: 50px;
	background: #34A853;
	transform-origin: top right;
}
.spinner.filled.fourth div:nth-child(2):after {
	bottom: 0;
	right: 0;
	border-bottom-right-radius: 50px;
	background: #4285F4;
	transform-origin: top left;
}
@-webkit-keyframes spin {
	0% {
		-webkit-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		-o-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		-o-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
@keyframes spin {
	0% {
		-webkit-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		-o-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		-o-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
.loader.solid {
	display: inline-block;
	color: #ffffff;
	width: 25px;
	height: 25px;
}
/* Fade */
.loader.solid.fade {
	-webkit-animation: loader 1.5s infinite linear;
	animation: loader 1.5s infinite linear;
}
@-webkit-keyframes loader {
	0%{
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 0 #4c4c4c;
	}
	25% {
		box-shadow: 0 -25px 0 -15px #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 0 #4c4c4c;
	}
	50% {
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 -15px #4c4c4c, -25px 0 0 0 #4c4c4c;
	}
	75% {
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 -15px #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 0 #4c4c4c;
	}
	100% {
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 -15px #4c4c4c;
	}
}
@keyframes loader {
	0%{
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 0 #4c4c4c;
	}
	25% {
		box-shadow: 0 -25px 0 -15px #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 0 #4c4c4c;
	}
	50% {
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 -15px #4c4c4c, -25px 0 0 0 #4c4c4c;
	}
	75% {
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 -15px #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 0 #4c4c4c;
	}
	100% {
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 -15px #4c4c4c;
	}
}
.loader.solid.square {
	border-radius: 2px;
}
.loader.solid.circle {
	border-radius: 50%;
}
.loader.rotate {
	-webkit-animation: rotate 1s linear  infinite;
	-moz-animation: rotate 1s linear  infinite;
	-ms-animation: rotate 1s linear  infinite;
	-o-animation: rotate 1s linear  infinite;
	animation: rotate 1s linear  infinite;
}
@-webkit-keyframes rotate {
	0% {
		-webkit-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		-o-transform: rotate(0deg);
		transform: rotate(0deg);
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 0 #4c4c4c;
	}
	100% {
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 0 #4c4c4c;
		-webkit-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		-o-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
@keyframes rotate {
	0% {
		-webkit-transform: rotate(0deg);
		-moz-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		-o-transform: rotate(0deg);
		transform: rotate(0deg);
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 0 #4c4c4c;
	}
	100% {
		box-shadow: 0 -25px 0 0 #4c4c4c, 0 25px 0 0 #4c4c4c, 25px 0 0 0 #4c4c4c, -25px 0 0 0 #4c4c4c;
		-webkit-transform: rotate(360deg);
		-moz-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		-o-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
.loader.circle-full {
	display: inline-block;
	color: #ffffff;
	width: 25px;
	height: 25px;
	border-radius: 100%;
}
/* Circle(dot) Animation */
.loader.circle-full.blink {
	-webkit-animation: loderBlinkAnimation 1s linear infinite;
	-moz-animation: loderBlinkAnimation 1s linear infinite;
	-ms-animation: loderBlinkAnimation 1s linear infinite;
	-o-animation: loderBlinkAnimation 1s linear infinite;
	animation: loderBlinkAnimation 1s linear infinite;
}
@-webkit-keyframes loderBlinkAnimation {
	0%, 100% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	12.5% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	25% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 transparent, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	37.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 transparent, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	50% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 transparent,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	62.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 transparent, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	75% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 transparent, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	87.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 transparent, -35px -35px 0 0 #4c4c4c;
	}
	100% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 transparent;
	}
}
@keyframes loderBlinkAnimation {
	0%, 100% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	12.5% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	25% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 transparent, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	37.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 transparent, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	50% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 transparent,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	62.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 transparent, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	75% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 transparent, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	87.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 transparent, -35px -35px 0 0 #4c4c4c;
	}
	100% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 transparent;
	}
}
.loader.circle-full.zoomIO {
	-webkit-animation: loderZoomIOAnimation 1s linear infinite;
	-moz-animation: loderZoomIOAnimation 1s linear infinite;
	-ms-animation: loderZoomIOAnimation 1s linear infinite;
	-o-animation: loderZoomIOAnimation 1s linear infinite;
	animation: loderZoomIOAnimation 1s linear infinite;
}
@-webkit-keyframes loderZoomIOAnimation {
	0%,
	100% {
		box-shadow: 0 -50px 0 -25px #4c4c4c, 35px -35px 0 -15px #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 -15px #4c4c4c;
	}
	12.5% {
		box-shadow: 0 -50px 0 -35px #4c4c4c, 35px -35px 0 -25px #4c4c4c, 50px 0 0 -15px #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	25% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 -35px #4c4c4c, 50px 0 0 -25px #4c4c4c, 35px 35px 0 -15px #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	37.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 -35px #4c4c4c, 35px 35px 0 -25px #4c4c4c,
		0 50px 0 -15px #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	50% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 -35px #4c4c4c,
		0 50px 0 -25px #4c4c4c, -35px 35px 0 -15px #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	62.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 -35px #4c4c4c, -35px 35px 0 -25px #4c4c4c, -50px 0 0 -15px #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	75% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 -35px #4c4c4c, -50px 0 0 -25px #4c4c4c, -35px -35px 0 -15px #4c4c4c;
	}
	87.5% {
		box-shadow: 0 -50px 0 -15px #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 -35px #4c4c4c, -35px -35px 0 -25px #4c4c4c;
	}
}
@keyframes loderZoomIOAnimation {
	0%,
	100% {
		box-shadow: 0 -50px 0 -25px #4c4c4c, 35px -35px 0 -15px #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 -15px #4c4c4c;
	}
	12.5% {
		box-shadow: 0 -50px 0 -35px #4c4c4c, 35px -35px 0 -25px #4c4c4c, 50px 0 0 -15px #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	25% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 -35px #4c4c4c, 50px 0 0 -25px #4c4c4c, 35px 35px 0 -15px #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	37.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 -35px #4c4c4c, 35px 35px 0 -25px #4c4c4c,
		0 50px 0 -15px #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	50% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 -35px #4c4c4c,
		0 50px 0 -25px #4c4c4c, -35px 35px 0 -15px #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	62.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 -35px #4c4c4c, -35px 35px 0 -25px #4c4c4c, -50px 0 0 -15px #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	75% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 -35px #4c4c4c, -50px 0 0 -25px #4c4c4c, -35px -35px 0 -15px #4c4c4c;
	}
	87.5% {
		box-shadow: 0 -50px 0 -15px #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 -35px #4c4c4c, -35px -35px 0 -25px #4c4c4c;
	}
}
.loader.circle-full.blink-half {
	-webkit-animation: loaderBlinkHalfAnimation 1s linear infinite;
	-moz-animation: loaderBlinkHalfAnimation 1s linear infinite;
	-ms-animation: loaderBlinkHalfAnimation 1s linear infinite;
	-o-animation: loaderBlinkHalfAnimation 1s linear infinite;
	animation: loaderBlinkHalfAnimation 1s linear infinite;
}
@-webkit-keyframes loaderBlinkHalfAnimation {
	0% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 transparent, 50px 0 0 0 transparent, 35px 35px 0 0 transparent,
		0 50px 0 0 transparent, -35px 35px 0 0 transparent, -50px 0 0 0 transparent, -35px -35px 0 0 #4c4c4c;
	}
	12.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 transparent, 35px 35px 0 0 transparent,
		0 50px 0 0 transparent, -35px 35px 0 0 transparent, -50px 0 0 0 transparent, -35px -35px 0 0 transparent;
	}
	25% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 transparent,
		0 50px 0 0 transparent, -35px 35px 0 0 transparent, -50px 0 0 0 transparent, -35px -35px 0 0 transparent;
	}
	37.5% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 transparent, -35px 35px 0 0 transparent, -50px 0 0 0 transparent, -35px -35px 0 0 transparent;
	}
	50% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 transparent, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 transparent, -50px 0 0 0 transparent, -35px -35px 0 0 transparent;
	}
	62.5% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 transparent, 50px 0 0 0 transparent, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 transparent, -35px -35px 0 0 transparent;
	}
	75% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 transparent, 50px 0 0 0 transparent, 35px 35px 0 0 transparent,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 transparent;
	}
	87.5% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 transparent, 50px 0 0 0 transparent, 35px 35px 0 0 transparent,
		0 50px 0 0 transparent, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	100% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 transparent, 50px 0 0 0 transparent, 35px 35px 0 0 transparent,
		0 50px 0 0 transparent, -35px 35px 0 0 transparent, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
}
@keyframes loaderBlinkHalfAnimation {
	0% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 transparent, 50px 0 0 0 transparent, 35px 35px 0 0 transparent,
		0 50px 0 0 transparent, -35px 35px 0 0 transparent, -50px 0 0 0 transparent, -35px -35px 0 0 #4c4c4c;
	}
	12.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 transparent, 35px 35px 0 0 transparent,
		0 50px 0 0 transparent, -35px 35px 0 0 transparent, -50px 0 0 0 transparent, -35px -35px 0 0 transparent;
	}
	25% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 transparent,
		0 50px 0 0 transparent, -35px 35px 0 0 transparent, -50px 0 0 0 transparent, -35px -35px 0 0 transparent;
	}
	37.5% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 transparent, -35px 35px 0 0 transparent, -50px 0 0 0 transparent, -35px -35px 0 0 transparent;
	}
	50% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 transparent, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 transparent, -50px 0 0 0 transparent, -35px -35px 0 0 transparent;
	}
	62.5% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 transparent, 50px 0 0 0 transparent, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 transparent, -35px -35px 0 0 transparent;
	}
	75% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 transparent, 50px 0 0 0 transparent, 35px 35px 0 0 transparent,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 transparent;
	}
	87.5% {
		box-shadow: 0 -50px 0 0 transparent, 35px -35px 0 0 transparent, 50px 0 0 0 transparent, 35px 35px 0 0 transparent,
		0 50px 0 0 transparent, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	100% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 transparent, 50px 0 0 0 transparent, 35px 35px 0 0 transparent,
		0 50px 0 0 transparent, -35px 35px 0 0 transparent, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
}
.loader.circle-full.zoomIO-half {
	-webkit-animation: loaderZoomIOHalfAnimation 1s linear infinite;
	-moz-animation: loaderZoomIOHalfAnimation 1s linear infinite;
	-ms-animation: loaderZoomIOHalfAnimation 1s linear infinite;
	-o-animation: loaderZoomIOHalfAnimation 1s linear infinite;
	animation: loaderZoomIOHalfAnimation 1s linear infinite;
}
@-webkit-keyframes loaderZoomIOHalfAnimation {
	0%, 100% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	12.5% {
		box-shadow: 0 -50px 0 -35px #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	25% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 -35px #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	37.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 -35px #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	50% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 -35px #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	62.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 -35px #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	75% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 -35px #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	87.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 -35px #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	100% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 -35px #4c4c4c;
	}
}
@keyframes loaderZoomIOHalfAnimation {
	0%, 100% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	12.5% {
		box-shadow: 0 -50px 0 -35px #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	25% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 -35px #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	37.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 -35px #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	50% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 -35px #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	62.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 -35px #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	75% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 -35px #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	87.5% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 -35px #4c4c4c, -35px -35px 0 0 #4c4c4c;
	}
	100% {
		box-shadow: 0 -50px 0 0 #4c4c4c, 35px -35px 0 0 #4c4c4c, 50px 0 0 0 #4c4c4c, 35px 35px 0 0 #4c4c4c,
		0 50px 0 0 #4c4c4c, -35px 35px 0 0 #4c4c4c, -50px 0 0 0 #4c4c4c, -35px -35px 0 -35px #4c4c4c;
	}
}



Hope you guys liked the demo.

html,   css,   creative ... 

Bubble Loaders in CSS

 Techmates
 12 Mar, 2018

In this demo we'd love to share bubble loaders animation/effects with pure CSS with you guys.

In this article we provide the bubble blink effect, zoom in, zoom out, bubble collide animation, bubble bars effects. 

In this article we're using custom css animation/transition. You can change the animation according to your need.

*Note:  Advance animation will only work in latest supported browsers.

HTML Structure

 <div class="loader-box">
	<div class="bubble"></div>
	<div class="bubble animate"></div>
	<div class="bubble animate delay-2"></div>
</div>
<div class="loader-box">
	<div class="bubble zoom-in"></div>
	<div class="bubble zoom-out"></div>
</div>
<div class="loader-box">
	<div class="bubble zoom-out-xl"></div>
</div>
<div class="loader-box">
	<div class="bubble relative animate"></div>
	<div class="bubble relative animate delay-1"></div>
	<div class="bubble relative animate delay-2"></div>
</div>
<div class="loader-box">
	<div class="bubble relative zoom"></div>
	<div class="bubble relative zoom delay-1"></div>
	<div class="bubble relative zoom delay-2"></div>
	<div class="bubble relative zoom delay-3"></div>
</div>
<div class="cf"></div><br />
<div class="loader-box">
	<div class="bubble relative solid collide"></div>
</div>
<div class="loader-box">
	<div class="bubble relative solid bgt in-out-top-bottom">
		<span></span>
		<span></span>
		<span></span>
	</div>
</div>
<div class="loader-box">
	<div class="bubble relative solid bgt in-out-left-right">
		<span></span>
		<span></span>
		<span></span>
		<span></span>
		<span></span>
	</div>
</div>
<div class="loader-box">
	<div class="bubble relative solid bgt in-out-zoom">
		<span></span>
		<span></span>
		<span></span>
		<span></span>
		<span></span>
	</div>
</div>

CSS Styles

 /* Loader box: parent class; */
.loader-box {
	position: relative;
	display: inline-block;
	margin: 0 auto;
	width: 200px;
	height: 200px;
}
/* Bubble */
.bubble {
	position: absolute;
	top: 50%;
	left: 0;
	-webkit-transform: translate(-50%, -50%);
	   -moz-transform: translate(-50%, -50%);
		-ms-transform: translate(-50%, -50%);
		 -o-transform: translate(-50%, -50%);
			transform: translate(-50%, -50%);
	right: 0;
	margin: 0 auto;
	content: "";
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: rgba(0, 0, 0, .55);
	opacity: 0;
}
.bubble.relative {
	position: relative;
	left: 50%;
	float: left;
	margin-left: 20px
}
/* Bubble animation */
.bubble.animate {
	-webkit-animation: bubbleEffect 2s ease-out infinite;
	   -moz-animation: bubbleEffect 2s ease-out infinite;
		-ms-animation: bubbleEffect 2s ease-out infinite;
		 -o-animation: bubbleEffect 2s ease-out infinite;
			animation: bubbleEffect 2s ease-out infinite;
}
.bubble.animate.reverse {
	-webkit-animation: bubbleEffectReverse 2s ease-out infinite;
	   -moz-animation: bubbleEffectReverse 2s ease-out infinite;
		-ms-animation: bubbleEffectReverse 2s ease-out infinite;
		 -o-animation: bubbleEffectReverse 2s ease-out infinite;
			animation: bubbleEffectReverse 2s ease-out infinite;
	opacity: 1;
}
.bubble.animate.delay-1 {
	-webkit-animation: bubbleEffect 2s ease-out .5s infinite;
	   -moz-animation: bubbleEffect 2s ease-out .5s infinite;
		-ms-animation: bubbleEffect 2s ease-out .5s infinite;
		 -o-animation: bubbleEffect 2s ease-out .5s infinite;
			animation: bubbleEffect 2s ease-out .5s infinite;
}
.bubble.animate.delay-2 {
	-webkit-animation: bubbleEffect 2s ease-out 1s infinite;
	   -moz-animation: bubbleEffect 2s ease-out 1s infinite;
		-ms-animation: bubbleEffect 2s ease-out 1s infinite;
		 -o-animation: bubbleEffect 2s ease-out 1s infinite;
			animation: bubbleEffect 2s ease-out 1s infinite;
}
@-webkit-keyframes bubbleEffect {
	0% {
		opacity: 1;
	}
	100% {
		-webkit-transform: scale(10);
		   -moz-transform: scale(10);
			-ms-transform: scale(10);
			 -o-transform: scale(10);
				transform: scale(10);
		opacity: 0;
	}
}
@keyframes bubbleEffect {
	0% {
		opacity: 1;
	}
	100% {
		-webkit-transform: scale(10);
		   -moz-transform: scale(10);
			-ms-transform: scale(10);
			 -o-transform: scale(10);
				transform: scale(10);
		opacity: 0;
	}
}
/* Bubble zoom effect */
.bubble.zoom {
	width: 10px;
	height: 10px;
	-webkit-animation: zoomEffect 2s ease-out infinite;
	   -moz-animation: zoomEffect 2s ease-out infinite;
		-ms-animation: zoomEffect 2s ease-out infinite;
		 -o-animation: zoomEffect 2s ease-out infinite;
			animation: zoomEffect 2s ease-out infinite;
}
.bubble.zoom.delay-1 {
	-webkit-animation-delay: .25s;
	-o-animation-delay: .25s;
	animation-delay: .25s;
}
.bubble.zoom.delay-2 {
	-webkit-animation-delay: .5s;
	-o-animation-delay: .5s;
	animation-delay: .5s;
}
.bubble.zoom.delay-3 {
	-webkit-animation-delay: .75s;
	-o-animation-delay: .75s;
	animation-delay: .75s;
}
@-webkit-keyframes zoomEffect {
	0% {
		opacity: 1;
		background: rgba(0, 0, 0, .5);
	}
	50% {
		-webkit-transform: scale(3);
		   -moz-transform: scale(3);
			-ms-transform: scale(3);
			 -o-transform: scale(3);
				transform: scale(3);
	}
	100% {
		opacity: 1;
		-webkit-transform: scale(0);
		   -moz-transform: scale(0);
			-ms-transform: scale(0);
			 -o-transform: scale(0);
				transform: scale(0);
	}
}
@keyframes zoomEffect {
	0% {
		opacity: 1;
		background: rgba(0, 0, 0, .5);
	}
	50% {
		-webkit-transform: scale(3);
		   -moz-transform: scale(3);
			-ms-transform: scale(3);
			 -o-transform: scale(3);
				transform: scale(3);
	}
	100% {
		opacity: 1;
		-webkit-transform: scale(0);
		   -moz-transform: scale(0);
			-ms-transform: scale(0);
			 -o-transform: scale(0);
				transform: scale(0);
	}
}
.bubble.zoom-in {
	-webkit-animation: zoomInEffect 3s ease-out infinite;
	   -moz-animation: zoomInEffect 3s ease-out infinite;
		-ms-animation: zoomInEffect 3s ease-out infinite;
		 -o-animation: zoomInEffect 3s ease-out infinite;
			animation: zoomInEffect 3s ease-out infinite;
	opacity: 1;
}
@-webkit-keyframes zoomInEffect {
	0% {
		-webkit-transform: scale(1);
		   -moz-transform: scale(1);
			-ms-transform: scale(1);
			 -o-transform: scale(1);
				transform: scale(1);
	}
	50% {
		-webkit-transform: scale(10);
		   -moz-transform: scale(10);
			-ms-transform: scale(10);
			 -o-transform: scale(10);
				transform: scale(10);
	}
	100% {
		-webkit-transform: scale(1);
		   -moz-transform: scale(1);
			-ms-transform: scale(1);
			 -o-transform: scale(1);
				transform: scale(1);
	}
}
@keyframes zoomInEffect {
	0% {
		-webkit-transform: scale(1);
		   -moz-transform: scale(1);
			-ms-transform: scale(1);
			 -o-transform: scale(1);
				transform: scale(1);
	}
	50% {
		-webkit-transform: scale(10);
		   -moz-transform: scale(10);
			-ms-transform: scale(10);
			 -o-transform: scale(10);
				transform: scale(10);
	}
	100% {
		-webkit-transform: scale(1);
		   -moz-transform: scale(1);
			-ms-transform: scale(1);
			 -o-transform: scale(1);
				transform: scale(1);
	}
}
.bubble.zoom-out {
	-webkit-animation: zoomOutEffect 3s ease-in infinite;
	   -moz-animation: zoomOutEffect 3s ease-in infinite;
		-ms-animation: zoomOutEffect 3s ease-in infinite;
		 -o-animation: zoomOutEffect 3s ease-in infinite;
			animation: zoomOutEffect 3s ease-in infinite;
	opacity: 1;
}
@-webkit-keyframes zoomOutEffect {
	0% {
		-webkit-transform: scale(10);
		   -moz-transform: scale(10);
			-ms-transform: scale(10);
			 -o-transform: scale(10);
				transform: scale(10);
	}
	50% {
		-webkit-transform: scale(1);
		   -moz-transform: scale(1);
			-ms-transform: scale(1);
			 -o-transform: scale(1);
				transform: scale(1);
	}
	100% {
		-webkit-transform: scale(10);
		   -moz-transform: scale(10);
			-ms-transform: scale(10);
			 -o-transform: scale(10);
				transform: scale(10);
	}
}
@keyframes zoomOutEffect {
	0% {
		-webkit-transform: scale(10);
		   -moz-transform: scale(10);
			-ms-transform: scale(10);
			 -o-transform: scale(10);
				transform: scale(10);
	}
	50% {
		-webkit-transform: scale(1);
		   -moz-transform: scale(1);
			-ms-transform: scale(1);
			 -o-transform: scale(1);
				transform: scale(1);
	}
	100% {
		-webkit-transform: scale(10);
		   -moz-transform: scale(10);
			-ms-transform: scale(10);
			 -o-transform: scale(10);
				transform: scale(10);
	}
}
.bubble.zoom-out-xl {
	-webkit-animation: zoomOutXLEffect 1s ease infinite;
	   -moz-animation: zoomOutXLEffect 1s ease infinite;
		-ms-animation: zoomOutXLEffect 1s ease infinite;
		 -o-animation: zoomOutXLEffect 1s ease infinite;
			animation: zoomOutXLEffect 1s ease infinite;
	opacity: 1;
}
@-webkit-keyframes zoomOutXLEffect {
	0% {
		-webkit-transform: scale(1);
		   -moz-transform: scale(1);
			-ms-transform: scale(1);
			 -o-transform: scale(1);
				transform: scale(1);
	}
	70% {
		opacity: .5;
	}
	100% {
		-webkit-transform: scale(15);
		   -moz-transform: scale(15);
			-ms-transform: scale(15);
			 -o-transform: scale(15);
				transform: scale(15);
		opacity: 0;
	}
}
@keyframes zoomOutXLEffect {
	0% {
		-webkit-transform: scale(1);
		   -moz-transform: scale(1);
			-ms-transform: scale(1);
			 -o-transform: scale(1);
				transform: scale(1);
	}
	70% {
		opacity: .5;
	}
	100% {
		-webkit-transform: scale(15);
		   -moz-transform: scale(15);
			-ms-transform: scale(15);
			 -o-transform: scale(15);
				transform: scale(15);
		opacity: 0;
	}
}
/* Bubble collide efffect */
.bubble.solid.collide {
	position: relative;
	width: 25px;
	height: 25px;
	opacity: 1;
	background: #6c6c6c;
	-webkit-animation: bubbleCollideEffect 1s .25s infinite;
	   -moz-animation: bubbleCollideEffect 1s .25s infinite;
		-ms-animation: bubbleCollideEffect 1s .25s infinite;
		 -o-animation: bubbleCollideEffect 1s .25s infinite;
			animation: bubbleCollideEffect 1s .25s infinite;
}
.bubble.solid.collide:before,
.bubble.solid.collide:after {
	position: absolute;
	content: "";
	width: 25px;
	height: 25px;
	border-radius: 100%;
	z-index: 9;
	top: 0;
	background: #6c6c6c;
}
.bubble.solid.collide:before {
	left: -25px;
	-webkit-animation: bubbleCollideLeft 1s ease-out infinite;
	   -moz-animation: bubbleCollideLeft 1s ease-out infinite;
		-ms-animation: bubbleCollideLeft 1s ease-out infinite;
		 -o-animation: bubbleCollideLeft 1s ease-out infinite;
			animation: bubbleCollideLeft 1s ease-out infinite;
}
@-webkit-keyframes bubbleCollideLeft {
	0%, 100% {
		left: -25px;
	}
	40% {
		left: -50px;
	}
	50% {
		left: -25px;
	}
}
@keyframes bubbleCollideLeft {
	0%, 100% {
		left: -25px;
	}
	40% {
		left: -50px;
	}
	50% {
		left: -25px;
	}
}
.bubble.solid.collide:after {
	right: -25px;
	-webkit-animation: bubbleCollideRight 1s .5s ease-out infinite;
	   -moz-animation: bubbleCollideRight 1s .5s ease-out infinite;
		-ms-animation: bubbleCollideRight 1s .5s ease-out infinite;
		 -o-animation: bubbleCollideRight 1s .5s ease-out infinite;
			animation: bubbleCollideRight 1s .5s ease-out infinite;
}
@-webkit-keyframes bubbleCollideRight {
	0%, 100% {
		right: -25px;
	}
	40% {
		right: -50px;
	}
	50% {
		right: -25px;		
	}
}
@keyframes bubbleCollideRight {
	0%, 100% {
		right: -25px;
	}
	40% {
		right: -50px;
	}
	50% {
		right: -25px;		
	}
}
.bubble.solid.bgt {
	opacity: 1;
	background: transparent;
	width: 25px;
	height: 25px;
}
/* Bubble in out from top to bottom */
.bubble.solid.in-out-top-bottom span {
	position: absolute;
	content: " ";
	top: 0;
	display: inline-block;
	width: 25px;
	height: 25px;
	background: #6c6c6c;
	border-radius: 100%;
}
.bubble.solid.in-out-top-bottom span:first-child {
	left: -30px;
	-webkit-animation: bubbleInOutTBEffect 1.5s ease infinite;
	   -moz-animation: bubbleInOutTBEffect 1.5s ease infinite;
		-ms-animation: bubbleInOutTBEffect 1.5s ease infinite;
		 -o-animation: bubbleInOutTBEffect 1.5s ease infinite;
			animation: bubbleInOutTBEffect 1.5s ease infinite;
}
.bubble.solid.in-out-top-bottom span:nth-child(2) {
	left: 0;
	opacity: 0;
	-webkit-animation: bubbleInOutTBEffect 1.5s ease .5s infinite;
	   -moz-animation: bubbleInOutTBEffect 1.5s ease .5s infinite;
		-ms-animation: bubbleInOutTBEffect 1.5s ease .5s infinite;
		 -o-animation: bubbleInOutTBEffect 1.5s ease .5s infinite;
			animation: bubbleInOutTBEffect 1.5s ease .5s infinite;
}
.bubble.solid.in-out-top-bottom span:last-child {
	right: -30px;
	opacity: 0;
	-webkit-animation: bubbleInOutTBEffect 1.5s ease 1s infinite;
	   -moz-animation: bubbleInOutTBEffect 1.5s ease 1s infinite;
		-ms-animation: bubbleInOutTBEffect 1.5s ease 1s infinite;
		 -o-animation: bubbleInOutTBEffect 1.5s ease 1s infinite;
			animation: bubbleInOutTBEffect 1.5s ease 1s infinite;
}
@-webkit-keyframes bubbleInOutTBEffect {
	0% {
		opacity: 0;
		-webkit-transform: translateY(-25px);
		   -moz-transform: translateY(-25px);
			-ms-transform: translateY(-25px);
			 -o-transform: translateY(-25px);
				transform: translateY(-25px);
	}
	50% {
		opacity: 1;
		-webkit-transform: translateY(0px);
		   -moz-transform: translateY(0px);
			-ms-transform: translateY(0px);
			 -o-transform: translateY(0px);
				transform: translateY(0px);
	}
	100% {
		opacity: 0;
		-webkit-transform: translateY(25px);
		   -moz-transform: translateY(25px);
			-ms-transform: translateY(25px);
			 -o-transform: translateY(25px);
				transform: translateY(25px);
	}
}
@keyframes bubbleInOutTBEffect {
	0% {
		opacity: 0;
		-webkit-transform: translateY(-25px);
		   -moz-transform: translateY(-25px);
			-ms-transform: translateY(-25px);
			 -o-transform: translateY(-25px);
				transform: translateY(-25px);
	}
	50% {
		opacity: 1;
		-webkit-transform: translateY(0px);
		   -moz-transform: translateY(0px);
			-ms-transform: translateY(0px);
			 -o-transform: translateY(0px);
				transform: translateY(0px);
	}
	100% {
		opacity: 0;
		-webkit-transform: translateY(25px);
		   -moz-transform: translateY(25px);
			-ms-transform: translateY(25px);
			 -o-transform: translateY(25px);
				transform: translateY(25px);
	}
}
/* Bubble in out from left to right */
.bubble.solid.in-out-left-right,
.bubble.solid.in-out-zoom {
	margin-left: 70px;
}
.bubble.solid.in-out-left-right span {
	position: absolute;
	content: " ";
	top: 0;
	display: inline-block;
	width: 20px;
	height: 20px;
	background: #6c6c6c;
	border-radius: 100%;
}
.bubble.solid.in-out-left-right span {
	opacity: 0;
}
.bubble.solid.in-out-left-right span:first-child {
	left: -25px;
	-webkit-animation: bubbleInOutLREffect 2.5s ease-out infinite;
	   -moz-animation: bubbleInOutLREffect 2.5s ease-out infinite;
		-ms-animation: bubbleInOutLREffect 2.5s ease-out infinite;
		 -o-animation: bubbleInOutLREffect 2.5s ease-out infinite;
			animation: bubbleInOutLREffect 2.5s ease-out infinite;
}
.bubble.solid.in-out-left-right span:nth-child(2) {
	left: -50px;
	-webkit-animation: bubbleInOutLREffect 2.5s ease-out .15s infinite;
	   -moz-animation: bubbleInOutLREffect 2.5s ease-out .15s infinite;
		-ms-animation: bubbleInOutLREffect 2.5s ease-out .15s infinite;
		 -o-animation: bubbleInOutLREffect 2.5s ease-out .15s infinite;
			animation: bubbleInOutLREffect 2.5s ease-out .15s infinite;
}
.bubble.solid.in-out-left-right span:nth-child(3) {
	left: -75px;
	-webkit-animation: bubbleInOutLREffect 2.5s ease-out .3s infinite;
	   -moz-animation: bubbleInOutLREffect 2.5s ease-out .3s infinite;
		-ms-animation: bubbleInOutLREffect 2.5s ease-out .3s infinite;
		 -o-animation: bubbleInOutLREffect 2.5s ease-out .3s infinite;
			animation: bubbleInOutLREffect 2.5s ease-out .3s infinite;
}
.bubble.solid.in-out-left-right span:nth-child(4) {
	left: -100px;
	-webkit-animation: bubbleInOutLREffect 2.5s ease-out .45s infinite;
	   -moz-animation: bubbleInOutLREffect 2.5s ease-out .45s infinite;
		-ms-animation: bubbleInOutLREffect 2.5s ease-out .45s infinite;
		 -o-animation: bubbleInOutLREffect 2.5s ease-out .45s infinite;
			animation: bubbleInOutLREffect 2.5s ease-out .45s infinite;
}
.bubble.solid.in-out-left-right span:nth-child(5) {
	left: -125px;
	-webkit-animation: bubbleInOutLREffect 2.5s ease-out .6s infinite;
	   -moz-animation: bubbleInOutLREffect 2.5s ease-out .6s infinite;
		-ms-animation: bubbleInOutLREffect 2.5s ease-out .6s infinite;
		 -o-animation: bubbleInOutLREffect 2.5s ease-out .6s infinite;
			animation: bubbleInOutLREffect 2.5s ease-out .6s infinite;
}
@-webkit-keyframes bubbleInOutLREffect {
	0%, 100% {
		-webkit-transform: translateX(-50px);
		   -moz-transform: translateX(-50px);
			-ms-transform: translateX(-50px);
			 -o-transform: translateX(-50px);
				transform: translateX(-50px);
		opacity: 0;
	}
	25% {
		-webkit-transform: translateX(0);
		   -moz-transform: translateX(0);
			-ms-transform: translateX(0);
			 -o-transform: translateX(0);
				transform: translateX(0);
		opacity: 1;
	}
	50% {
		-webkit-transform: translateX(0);
		   -moz-transform: translateX(0);
			-ms-transform: translateX(0);
			 -o-transform: translateX(0);
				transform: translateX(0);
		opacity: 1
	}
	75% {
		-webkit-transform: translateX(50px);
		   -moz-transform: translateX(50px);
			-ms-transform: translateX(50px);
			 -o-transform: translateX(50px);
				transform: translateX(50px);
		opacity: 0;
	}
}
@keyframes bubbleInOutLREffect {
	0%, 100% {
		-webkit-transform: translateX(-50px);
		   -moz-transform: translateX(-50px);
			-ms-transform: translateX(-50px);
			 -o-transform: translateX(-50px);
				transform: translateX(-50px);
		opacity: 0;
	}
	25% {
		-webkit-transform: translateX(0);
		   -moz-transform: translateX(0);
			-ms-transform: translateX(0);
			 -o-transform: translateX(0);
				transform: translateX(0);
		opacity: 1;
	}
	50% {
		-webkit-transform: translateX(0);
		   -moz-transform: translateX(0);
			-ms-transform: translateX(0);
			 -o-transform: translateX(0);
				transform: translateX(0);
		opacity: 1
	}
	75% {
		-webkit-transform: translateX(50px);
		   -moz-transform: translateX(50px);
			-ms-transform: translateX(50px);
			 -o-transform: translateX(50px);
				transform: translateX(50px);
		opacity: 0;
	}
}
/* Bubble in out with scale */
.bubble.solid.in-out-zoom span {
	position: absolute;
	content: " ";
	top: 0;
	display: inline-block;
	width: 20px;
	height: 20px;
	background: #6c6c6c;
	border-radius: 100%;
	opacity: 0;
}
.bubble.solid.in-out-zoom span:first-child {
	left: -25px;
	-webkit-animation: bubbleInOutZoomEffect 2.5s ease-out .6s infinite;
	   -moz-animation: bubbleInOutZoomEffect 2.5s ease-out .6s infinite;
		-ms-animation: bubbleInOutZoomEffect 2.5s ease-out .6s infinite;
		 -o-animation: bubbleInOutZoomEffect 2.5s ease-out .6s infinite;
			animation: bubbleInOutZoomEffect 2.5s ease-out .6s infinite;
}
.bubble.solid.in-out-zoom span:nth-child(2) {
	left: -50px;
	-webkit-animation: bubbleInOutZoomEffect 2.5s ease-out .45s infinite;
	   -moz-animation: bubbleInOutZoomEffect 2.5s ease-out .45s infinite;
		-ms-animation: bubbleInOutZoomEffect 2.5s ease-out .45s infinite;
		 -o-animation: bubbleInOutZoomEffect 2.5s ease-out .45s infinite;
			animation: bubbleInOutZoomEffect 2.5s ease-out .45s infinite;
}
.bubble.solid.in-out-zoom span:nth-child(3) {
	left: -75px;
	-webkit-animation: bubbleInOutZoomEffect 2.5s ease-out .3s infinite;
	   -moz-animation: bubbleInOutZoomEffect 2.5s ease-out .3s infinite;
		-ms-animation: bubbleInOutZoomEffect 2.5s ease-out .3s infinite;
		 -o-animation: bubbleInOutZoomEffect 2.5s ease-out .3s infinite;
			animation: bubbleInOutZoomEffect 2.5s ease-out .3s infinite;
}
.bubble.solid.in-out-zoom span:nth-child(4) {
	left: -100px;
	-webkit-animation: bubbleInOutZoomEffect 2.5s ease-out .15s infinite;
	   -moz-animation: bubbleInOutZoomEffect 2.5s ease-out .15s infinite;
		-ms-animation: bubbleInOutZoomEffect 2.5s ease-out .15s infinite;
		 -o-animation: bubbleInOutZoomEffect 2.5s ease-out .15s infinite;
			animation: bubbleInOutZoomEffect 2.5s ease-out .15s infinite;
}
.bubble.solid.in-out-zoom span:nth-child(5) {
	left: -125px;
	-webkit-animation: bubbleInOutZoomEffect 2.5s ease-out 0 infinite;
	   -moz-animation: bubbleInOutZoomEffect 2.5s ease-out 0 infinite;
		-ms-animation: bubbleInOutZoomEffect 2.5s ease-out 0 infinite;
		 -o-animation: bubbleInOutZoomEffect 2.5s ease-out 0 infinite;
			animation: bubbleInOutZoomEffect 2.5s ease-out 0 infinite;
}
@-webkit-keyframes bubbleInOutZoomEffect {
	0% {
		opacity: 0;
		-webkit-transform: scale(.8);
		   -moz-transform: scale(.8);
			-ms-transform: scale(.8);
			 -o-transform: scale(.8);
				transform: scale(.8);
	}
	33.33% {
		opacity: 1;
		-webkit-transform: scale(1);
		   -moz-transform: scale(1);
			-ms-transform: scale(1);
			 -o-transform: scale(1);
				transform: scale(1);
	}
	66.66% {
		opacity: 0;
		-webkit-transform: scale(2);
		   -moz-transform: scale(2);
			-ms-transform: scale(2);
			 -o-transform: scale(2);
				transform: scale(2);
	}
}
@keyframes bubbleInOutZoomEffect {
	0% {
		opacity: 0;
		-webkit-transform: scale(.8);
		   -moz-transform: scale(.8);
			-ms-transform: scale(.8);
			 -o-transform: scale(.8);
				transform: scale(.8);
	}
	33.33% {
		opacity: 1;
		-webkit-transform: scale(1);
		   -moz-transform: scale(1);
			-ms-transform: scale(1);
			 -o-transform: scale(1);
				transform: scale(1);
	}
	66.66% {
		opacity: 0;
		-webkit-transform: scale(2);
		   -moz-transform: scale(2);
			-ms-transform: scale(2);
			 -o-transform: scale(2);
				transform: scale(2);
	}
}

Hope you guys liked the demo.

css,   creative,   animation ... 

Loader Effects with Box/Characters in CSS

 Techmates
 13 Feb, 2018

Welcome guys, are you inquisitive to find beautiful loader box(loading characters) effect? Then this article is for you.

In this article we'd love to share a beautiful loader animation effects using CSS and JS with you.

This effect is fully dynamic  & customized. You can manage the loading speed change the animation etc... using the data- attributes.

List of the data- attributes to customize the effect.

  • dd-effect="{class-name}" to change the animation effect.
  • dd-transition-time="{time in ms}" to change the animation/transition time.
  • dd-remove-done-animated="{true/false}" to remove the animated elements.

Follow the code to create the loaders.

HTML Structure

 <div class="loading-characters padding-tb-l" dd-effect="layer" dd-remove-done-animated="false"><span>L</span><span>O</span><span>A</span><span>D</span><span>I</span><span>N</span><span>G</span></div>
<div class="underline"></div>
<div class="loading-characters padding-tb-l ovn" dd-effect="fade"><span>L</span><span>O</span><span>A</span><span>D</span><span>I</span><span>N</span><span>G</span></div>
<div class="underline"></div>
<div class="loading-characters padding-tb-l" dd-effect="up-down"><span>L</span><span>O</span><span>A</span><span>D</span><span>I</span><span>N</span><span>G</span></div>
<div class="underline"></div>
<div class="loading-characters padding-tb-l ovn" dd-effect="rotate-lf" dd-remove-done-animated="false" dd-transition-time="700"><span>L</span><span>O</span><span>A</span><span>D</span><span>I</span><span>N</span><span>G</span></div>
<div class="underline"></div>
<div class="loading-characters padding-tb-l ovn" dd-effect="left-right" dd-remove-done-animated="false"><span>L</span><span>O</span><span>A</span><span>D</span><span>I</span><span>N</span><span>G</span></div>
<div class="underline"></div>
<div class="loading-characters padding-tb-l ovn" dd-effect="zoom-in" dd-remove-done-animated="false" dd-transition-time="300"><span>L</span><span>O</span><span>A</span><span>D</span><span>I</span><span>N</span><span>G</span></div>
<div class="underline"></div>
<div class="loading-characters padding-tb-l ovn" dd-effect="zoom-out" dd-remove-done-animated="false" dd-transition-time="300"><span>L</span><span>O</span><span>A</span><span>D</span><span>I</span><span>N</span><span>G</span></div>

CSS Styles

 .loading-characters.ovn span {
	opacity: 0;
	visibility: hidden;
}
.loading-characters span {
	position: relative;
	display: inline-block;
	padding: 10px;
	background: darkred;
	font-size: 30px;
	width: 30px;
	margin: 0 3px;
	color: #fff;
	border-radius: 3px;
	-webkit-transition: all .25s ease;
	   -moz-transition: all .25s ease;
	    -ms-transition: all .25s ease;
	     -o-transition: all .25s ease;
	        transition: all .25s ease;
}
.loading-characters.effect-fade span {
	opacity: 0;
	visibility: hidden;
	-webkit-transform: scale(.9);
	   -moz-transform: scale(.9);
	    -ms-transform: scale(.9);
	     -o-transform: scale(.9);
	        transform: scale(.9);
}
.loading-characters.effect-fade span.active {
	opacity: 1;
	visibility: visible;
	-webkit-transform: scale(1);
	   -moz-transform: scale(1);
	    -ms-transform: scale(1);
	     -o-transform: scale(1);
	        transform: scale(1);
}

.loading-characters.effect-layer span.active {
	background: #3D84D6;
}
.loading-characters.effect-up-down span {
	-webkit-transform: translateY(-50px);
	   -moz-transform: translateY(-50px);
	    -ms-transform: translateY(-50px);
	     -o-transform: translateY(-50px);
	        transform: translateY(-50px);
	        opacity: 0;
}
.loading-characters.effect-up-down span.active {
	opacity: 1;
/*	-webkit-transform: translateY(-50px);
	   -moz-transform: translateY(-50px);
	    -ms-transform: translateY(-50px);
	     -o-transform: translateY(-50px);
	        transform: translateY(-50px);
*/	animation: upDownAnimation 2s ease-in-out;
}

@keyframes upDownAnimation {
	0% {
		-webkit-transform: translateY(-50px);
		   -moz-transform: translateY(-50px);
		    -ms-transform: translateY(-50px);
		     -o-transform: translateY(-50px);
		        transform: translateY(-50px);
	}
	50% {
		-webkit-transform: translateY(-5px);
		   -moz-transform: translateY(-5px);
		    -ms-transform: translateY(-5px);
		     -o-transform: translateY(-5px);
		        transform: translateY(-5px);	
	}
	100% {
		-webkit-transform: translateY(0);
		   -moz-transform: translateY(0);
		    -ms-transform: translateY(0);
		     -o-transform: translateY(0);
		        transform: translateY(0);
	}
}

.loading-characters.effect-left-right span {
	opacity: 0;
	visibility: hidden;
	-webkit-transform: translate(-25px);
	   -moz-transform: translate(-25px);
	    -ms-transform: translate(-25px);
	     -o-transform: translate(-25px);
	        transform: translate(-25px);
}
.loading-characters.effect-left-right span.active {
	opacity: 1;
	visibility: visible;
	-webkit-transform: translate(0);
	   -moz-transform: translate(0);
	    -ms-transform: translate(0);
	     -o-transform: translate(0);
	        transform: translate(0);
}


.loading-characters.effect-rotate-lf span {
	opacity: 0;
	visibility: hidden;
}
.loading-characters.effect-rotate-lf span.active {
	opacity: 1;
	visibility: visible;
	animation: rotateLoadingEffect .75s ease-in-out;
}

@keyframes rotateLoadingEffect {
	0% {
		-webkit-transform: rotate(0deg);
		   -moz-transform: rotate(0deg);
		    -ms-transform: rotate(0deg);
		     -o-transform: rotate(0deg);
		        transform: rotate(0deg);
	}
	75% {
		-webkit-transform: rotate(390deg);
		   -moz-transform: rotate(390deg);
		    -ms-transform: rotate(390deg);
		     -o-transform: rotate(390deg);
		        transform: rotate(390deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		   -moz-transform: rotate(360deg);
		    -ms-transform: rotate(360deg);
		     -o-transform: rotate(360deg);
		        transform: rotate(360deg);
	}
}


.loading-characters.effect-zoom-in span {
	opacity: 0;
	visibility: hidden;
	-webkit-transform: scale(0);
	   -moz-transform: scale(0);
	    -ms-transform: scale(0);
	     -o-transform: scale(0);
	        transform: scale(0);
}
.loading-characters.effect-zoom-in span.active {
	opacity: 1;
	visibility: visible;
	-webkit-transform: scale(1);
	   -moz-transform: scale(1);
	    -ms-transform: scale(1);
	     -o-transform: scale(1);
	        transform: scale(1);
}

.loading-characters.effect-zoom-out span {
	opacity: 0;
	visibility: hidden;
	-webkit-transform: scale(4);
	   -moz-transform: scale(4);
	    -ms-transform: scale(4);
	     -o-transform: scale(4);
	        transform: scale(4);
	-webkit-transition: all .5s ease;
	   -moz-transition: all .5s ease;
	    -ms-transition: all .5s ease;
	     -o-transition: all .5s ease;
	        transition: all .5s ease;
}
.loading-characters.effect-zoom-out span.active {
	opacity: 1;
	visibility: visible;
	-webkit-transform: scale(1);
	   -moz-transform: scale(1);
	    -ms-transform: scale(1);
	     -o-transform: scale(1);
	        transform: scale(1);
}

Javascript

 // var total_length = $('.loading-characters span').length;
var transition_time;
$('.loading-characters').each(function() {
	var count = 0;
	var effect = 'effect-'+$(this).attr('dd-effect');
	var total_length = $(this).children('span').length;
	var transition_time = ( $(this).attr('dd-transition-time') == undefined ? 500 : Number($(this).attr('dd-transition-time')));
	$(this).addClass('effect-'+$(this).attr('dd-effect'));
	loadingEffect(count, effect, transition_time, total_length);
});
// loadingEffect(count);
function loadingEffect(count, effect, transition_time, total_length) {
	if( count < total_length ) {
		count++;
		setTimeout(function() {
			$('.loading-characters.'+effect+' span:nth-child('+count+')').addClass('active');
			loadingEffect(count, effect, transition_time, total_length);
		}, transition_time);
		setTimeout(function() {
			if( $('.loading-characters.'+effect).attr('dd-remove-done-animated') != 'false' ) {
				$('.loading-characters.'+effect+' span:nth-child('+(count - 1)+')').removeClass('active');
			}
		}, transition_time);
	} else {
		setTimeout(function() {
			$('.loading-characters.'+effect+' span').removeClass('active');
		}, transition_time);
		count = -1;
		loadingEffect(count, effect, transition_time, total_length);
	}
}

To run this script you must have to include the jQuery library.

Hope you guys like this demo and use it in your own projects.

html,   css,   creative ...