0

Is there any way to add line spinner (from spin.js - https://spin.js.org) using plain css animation without using javascript (example: https://www.w3schools.com/howto/howto_css_loader.asp)?

developer
  • 1,401
  • 4
  • 28
  • 73

1 Answers1

1

Yes, you can, thanks for this article: click to see

For simpliest understanding, here is code snippet:

/**
 * (C)Leanest CSS spinner ever
 */

@keyframes spin {
 to { transform: rotate(1turn); }
}

.progress {
 position: relative;
 display: inline-block;
 width: 5em;
 height: 5em;
 margin: 0 .5em;
 font-size: 12px;
 text-indent: 999em;
 overflow: hidden;
 animation: spin 1s infinite steps(8);
}

.small.progress {
 font-size: 6px;
}

.large.progress {
 font-size: 24px;
}

.progress:before,
.progress:after,
.progress > div:before,
.progress > div:after {
 content: '';
 position: absolute;
 top: 0;
 left: 2.25em; /* (container width - part width)/2  */
 width: .5em;
 height: 1.5em;
 border-radius: .2em;
 background: #eee;
 box-shadow: 0 3.5em #eee; /* container height - part height */
 transform-origin: 50% 2.5em; /* container height / 2 */
}

.progress:before {
 background: #555;
}

.progress:after {
 transform: rotate(-45deg);
 background: #777;
}

.progress > div:before {
 transform: rotate(-90deg);
 background: #999;
}

.progress > div:after {
 transform: rotate(-135deg);
 background: #bbb;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">

</head>
<body>

<h2>How To Create A Loader</h2>


<div class="progress"><div>Loading…</div></div>


</body>
</html>

And jsFiddle

Scilef
  • 90
  • 9