Graph Loading Animation
A Pen by Rahul Sagore on CodePen.
Graph Loading Animation
A Pen by Rahul Sagore on CodePen.
<div class='dis-ib'> | |
<h3 class="text-center">Progress bar</h3> | |
<div class="graph-loader-wrapper"> | |
<div class="loader-anime hack-2 m-center graph__animate"> </div> | |
<svg height="155" width="155"> | |
<circle class="circle-back" cx="76" cy="77" r="75" stroke="#F0F0F0" stroke-width="2" fill="transparent" /> | |
<circle class="circle-front loader__progress" cx="76" cy="77" r="75" stroke="transparent" stroke-width="2" fill="transparent" /> | |
</svg> | |
</div> | |
</div> | |
<div class='dis-ib'> | |
<h3 class="text-center">Indefinite loader</h3> | |
<div class="graph-loader-wrapper"> | |
<div class="loader-anime2 m-center graph__animate"></div> | |
<svg class="spinner" height="155" width="155"> | |
<circle class="loader__rotate" cx="76" cy="77" r="75" stroke="transparent" stroke-width="2" fill="transparent" /> | |
</svg> | |
</div> | |
</div> |
.m-center { | |
margin: 0 auto; | |
} | |
.text-center, body { | |
text-align: center; | |
} | |
.dis-ib { | |
display: inline-block; | |
margin-right: 150px; | |
} | |
h3 { | |
margin-bottom: 40px; | |
} | |
.loader-anime { | |
&.hack-2 { | |
position: absolute; | |
left: 50%; | |
transform: translate(-50%, -50%); | |
width: 80px; | |
height: 80px; | |
margin-top: 80px; | |
background-image: url('https://rahul-sagore.github.io/assets/img/loader.svg'); | |
background-repeat-y: no-repeat; | |
background-position: 0 0; | |
border: none; | |
border-radius: initial; | |
overflow: visible; | |
} | |
svg { | |
position: relative; | |
margin-left: -36px; | |
margin-top: -32px; | |
} | |
} | |
.graph__animate { | |
animation: flowBackground 25s linear infinite; | |
} | |
.loader__progress { | |
stroke-dasharray: 472; | |
stroke: #0FC8B7; | |
stroke-dashoffset: 0; | |
animation: progressBar 10s linear infinite; | |
transform-origin: 76px 77px; | |
transform: rotate(-90deg); | |
} | |
.graph-loader-wrapper { | |
display: inline-block; | |
position: relative; | |
width: 152px; | |
} | |
.loader-anime2 { | |
position: absolute; | |
top: 50%; | |
left: 50%; | |
width: 80px; | |
height: 80px; | |
background-image: url('https://rahul-sagore.github.io/assets/img/loader.svg'); | |
background-repeat-y: no-repeat; | |
background-position: 0 0; | |
border: none; | |
border-radius: initial; | |
overflow: visible; | |
transform: translate(-50%, -50%); | |
} | |
.loader__rotate { | |
stroke: #0FC8B7; | |
stroke-dasharray: 118; | |
animation: rotate 10s linear infinite; | |
transform-origin: 76px 77px; | |
transform: rotate(-90deg); | |
} | |
@keyframes progressBar { | |
0% { | |
stroke-dashoffset: 472; | |
} | |
10% { | |
stroke-dashoffset: 457; | |
} | |
100% { | |
stroke-dashoffset: 0; | |
} | |
} | |
@keyframes flowBackground { | |
0% { | |
background-position: 0 0; | |
} | |
100% { | |
background-position: -1017px 0px; | |
} | |
} | |
@keyframes rotate { | |
0% { | |
stroke-dashoffset: 1; | |
} | |
100% { | |
stroke-dashoffset: 2600; | |
} | |
} |