Skip to content

Instantly share code, notes, and snippets.

@bennyzhao
Created September 19, 2013 00:39
Show Gist options
  • Save bennyzhao/6617752 to your computer and use it in GitHub Desktop.
Save bennyzhao/6617752 to your computer and use it in GitHub Desktop.
SVG Pie Loading Effect from:http://codepen.io/bennyzhao/pen/CHLvd
svg {
display: block;
margin: 50px auto;
}
#loader
{
fill: #0088cc;
}
#border
{
fill: #00517a;
}
<svg width="250" height="250" viewbox="0 0 250 250">
<path id="border" transform="translate(125, 125)"/>
<path id="loader" transform="translate(125, 125) scale(.84)"/>
</svg>
var loader = document.getElementById('loader')
, border = document.getElementById('border')
, α = 0
, π = Math.PI
, t = 30;
(function draw() {
α++;
α %= 360;
var r = ( α * π / 180 )
, x = Math.sin( r ) * 125
, y = Math.cos( r ) * - 125
, mid = ( α > 180 ) ? 1 : 0
, anim = 'M 0 0 v -125 A 125 125 1 '
+ mid + ' 1 '
+ x + ' '
+ y + ' z';
//[x,y].forEach(function( d ){
// d = Math.round( d * 1e3 ) / 1e3;
//});
loader.setAttribute( 'd', anim );
border.setAttribute( 'd', anim );
setTimeout(draw, t); // Redraw
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment