ほぼ仕事用のメモになるけど・・。
Html
<div class="gauge-wrapper"> <div class="gauge-type1 gauge-inner" data-percent="40"></div> </div> <div class="gauge-wrapper"> <div class="gauge-type2 gauge-inner" data-percent="98"></div> </div>
Css
.gauge-wrapper { background-color: #000; height: 10px; position: relative; margin-bottom: 2px; } .gauge-inner { position: absolute; bottom: 1px; box-sizing: border-box; height: 8px; width: 0%; -webkit-transition: all .7s 1s ease; } .gauge-type1.gauge-inner { background: -webkit-gradient(linear,left bottom,right top,from(#F25500),to(#F89100)); border: 1px inset #F25500; } .gauge-type2.gauge-inner { background: -webkit-gradient(linear,left bottom,right top,from(#165e83),to(#0094c8)); border: 1px inset #274a78; }
JavaScript
;(function(_win){ _win.Gauge = (function(){ var CLASS_NAME = '.gauge-inner', DATA_NAME = 'data-percent', _exec = function(){ var g = _win.document.querySelectorAll(CLASS_NAME); Array.prototype.forEach.call(g,function(elm){ var w = parseInt(elm.getAttribute(DATA_NAME), 10); w = (w > 100) ? 100 : w; elm.style.width = w + '%'; }); }; _win.addEventListener('load', _exec, false); }()); }(this));