Working on creating an appealing circular progress bar.
A Pen by Kurt Hanson on CodePen.
| <head> | |
| <link href='http://fonts.googleapis.com/css?family=Roboto+Condensed' rel='stylesheet' type='text/css' /> | |
| </head> | |
| <body> | |
| <div id="prog-contain"> | |
| <div class="prog"></div> | |
| </div> | |
| <div id="desc">Change: "<em>var percent = XX;</em> " in JS portion to update progress... </div> | |
| </body> |
Working on creating an appealing circular progress bar.
A Pen by Kurt Hanson on CodePen.
| function drawProgress(percent){ | |
| // Adjust Value Here | |
| var percent = 30; | |
| $('div.prog').html('<div class="percent"></div><div id="slice"'+(percent > 50?' class="gt50"':'')+'><div class="pie"></div>'+(percent > 50?'<div class="pie fill"></div>':'')+'</div>'); | |
| var deg = 360/100*percent; | |
| $('#slice .pie').css({ | |
| '-moz-transform':'rotate('+deg+'deg)', | |
| '-webkit-transform':'rotate('+deg+'deg)', | |
| '-o-transform':'rotate('+deg+'deg)', | |
| 'transform':'rotate('+deg+'deg)' | |
| }); | |
| $('.percent').html('<p>' + Math.round(percent)+'%</p>'); | |
| } | |
| $(document).ready(function(){ | |
| drawProgress(); | |
| }); |
| body { | |
| font-family: 'Roboto Condensed', sans-serif; | |
| font-weight: bold; | |
| color: #5c5c5c; | |
| background: #dddddd; | |
| padding: 40px 0 0 0; | |
| } | |
| #desc { | |
| text-align: center; | |
| margin: 40px 0; | |
| } | |
| .prog { | |
| position:relative; | |
| font-size: 300px; | |
| width:1em; | |
| height:1em; | |
| float: left; | |
| } | |
| #prog-contain { | |
| width: 300px; | |
| height: 300px; | |
| border-radius: 200px; | |
| border: solid 10px white; | |
| -moz-box-shadow: 3px 3px 5px 6px #bbb; | |
| -webkit-box-shadow: 3px 3px 5px 6px #bbb; | |
| box-shadow: 3px 3px 5px 6px #bbb; | |
| margin: 0px auto; | |
| } | |
| .prog > .percent { | |
| position: absolute; | |
| font-size: 0.3em; | |
| text-align: center; | |
| top: 30px; | |
| right: 30px; | |
| width: 180px; | |
| height: 180px; | |
| border: 2px solid white; | |
| border-radius: 200px; | |
| background: white; | |
| padding:28px; | |
| -moz-box-shadow: 3px 3px 5px 6px #ccc; | |
| -webkit-box-shadow: 3px 3px 5px 6px #ccc; | |
| box-shadow: 3px 3px 5px 6px #ccc; | |
| } | |
| .prog > .percent > p{ | |
| margin: 30px 0 0 15px; | |
| } | |
| .prog > #slice { | |
| position:absolute; | |
| width:1em; | |
| height:1em; | |
| clip:rect(0px,1em,1em,0.5em); | |
| } | |
| .prog > #slice.gt50 { | |
| clip:rect(auto, auto, auto, auto); | |
| } | |
| .prog > #slice > .pie { | |
| border: .1em solid #9a3e3e; | |
| position:absolute; | |
| width:0.8em; /* 1 - (2 * border width) */ | |
| height:0.8em; /* 1 - (2 * border width) */ | |
| clip:rect(0em,0.5em,1em,0em); | |
| -moz-border-radius:0.5em; | |
| -webkit-border-radius:0.5em; | |
| border-radius:0.5em; | |
| } | |
| .prog > #slice > .pie.fill { | |
| -moz-transform:rotate(180deg) !important; | |
| -webkit-transform:rotate(180deg) !important; | |
| -o-transform:rotate(180deg) !important; | |
| transform:rotate(180deg) !important; | |
| } | |
| .prog.fill > .percent { | |
| display: none; | |
| } | |
| .prog.fill > #slice > .pie { | |
| border: transparent; | |
| width:1em; | |
| height:1em; | |
| } |