HTML 5/CSS 3超クールプログレスバー異なるプログレス複数色
このプログレスバーを実装するプロセスとソースコードを見てみましょう.コードは主にHTML、CSS、jQueryから構成されており、実装プロセスも比較的簡単です.HTMLコード:
ここでは、進捗バーのコンテナと進捗率を定義します.CSSコード:
ここでは、CSS 3のアニメーション属性を用いて、0%から100%までのアニメーション効果を定義している.jQueryコード:
進捗バーのリアルタイム更新はjQueryコードで実現され、パーセンテージ数もリアルタイムで更新されます.オンラインデモソースのダウンロード
ソース:http://www.html5tricks.com/css3-progress-bar-line.html
<div id="wrapper">
<div class="loader-container">
<div class="meter">0</div>
<span class="runner"></span>
</div>
</div>
ここでは、進捗バーのコンテナと進捗率を定義します.CSSコード:
.loader-container { height: 6px; width: 600px; position: absolute; top: 50%; left: 50%; margin-top: -3px; margin-left: -300px; background-color: transparent; background-image: -webkit-linear-gradient(left, #5bd8ff, #ff0000); background-image: -moz-linear-gradient(left, #5bd8ff, #ff0000); background-image: -o-linear-gradient(left, #5bd8ff, #ff0000); background-image: -ms-linear-gradient(left, #5bd8ff, #ff0000); background-image: linear-gradient(left, #5bd8ff, #ff0000); box-shadow: inset 0 -2px 2px rgba(0, 0, 0, 0.4); border-radius: 3px 0 0 3px;}.loader-container:after { content: ""; display: block; position: absolute; right: 0; top: 50%; width: 1em; height: 1em; border-radius: 50%; margin-top: -0.5em; margin-right: -1em; background-image: -webkit-linear-gradient(top, #000000, #212121); background-image: -moz-linear-gradient(top, #000000, #212121); background-image: -o-linear-gradient(top, #000000, #212121); background-image: -ms-linear-gradient(top, #000000, #212121); background-image: linear-gradient(top, #000000, #212121);}.loader-container.done:after { background: Red;}.run .runner { content: ""; position: absolute; right: 0; height: 100%; width: 0%; background-color: transparent; background-image: -webkit-linear-gradient(top, #000000, #212121); background-image: -moz-linear-gradient(top, #000000, #212121); background-image: -o-linear-gradient(top, #000000, #212121); background-image: -ms-linear-gradient(top, #000000, #212121); background-image: linear-gradient(top, #000000, #212121); animation: loader 10s linear;}.meter { position: absolute; top: 0; right: 0; font-size: 2em; margin-top: .3em; color: #ff0000; animation: meter 10s linear; text-shadow: 0 -1px 0 #333333;}.meter:after { content: "%";}@keyframes loader { 0% { width: 100%; } 100% { width: 0%; }}@keyframes meter { 0% { color: #5bd8ff; } 100% { color: #ff0000; }}
ここでは、CSS 3のアニメーション属性を用いて、0%から100%までのアニメーション効果を定義している.jQueryコード:
var Loader = function () {
var loader = document.querySelector('.loader-container'), meter = document.querySelector('.meter'), k, i = 1, counter = function () { if (i <= 100) {
meter.innerHTML = i.toString(); i++; } else { window.clearInterval(k); } }; return { init: function (options) { options = options || {}; var time = options.time ? options.time : 0, interval = time/100; loader.classList.add('run'); k = window.setInterval(counter, interval);
setTimeout(function () {
loader.classList.add('done'); }, time); }, }}();Loader.init({ // If you have changed the @time in LESS, update this number to the corresponding value. Measured in miliseconds. time: 10000});
進捗バーのリアルタイム更新はjQueryコードで実現され、パーセンテージ数もリアルタイムで更新されます.オンラインデモソースのダウンロード
ソース:http://www.html5tricks.com/css3-progress-bar-line.html