円形のプログレスバーをprogressbar.jsで実装する方法
2024/04/15
円形のプログレスバーを実装したかった。CSSだったり画像を用いたりする方法もあったけど、その辺りは知識があまり無いのでJavaScriptもしくはjQueryで何とかしたい。調べてみたところprogressbar.jsというのが良さげ。以下に実装方法をメモ。
サンプル
https://taitan916.info/sample/progressbar/
公式サイト
https://kimmobrunfeldt.github.io/progressbar.js/
CDNでの呼び出し方法
<script src="https://cdnjs.cloudflare.com/ajax/libs/progressbar.js/1.1.0/progressbar.min.js"></script>
異なるバージョンを使用したい場合は以下から探す。
https://cdnjs.com/libraries/progressbar.js/1.1.0
ソースコード
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>progressbar.jsサンプル</title>
<style>
#progressbar{
    width: 100px;
    height: 100px;
    position: relative;
}
</style>
</head>
<body>
    <div id="progressbar"></div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/progressbar.js/1.1.0/progressbar.min.js"></script>
    <script>
    var bar = new ProgressBar.Circle(progressbar, {
        color: '#aaa',
        strokeWidth: 4,
        trailWidth: 1,
        easing: 'easeInOut',
        duration: 5000, //100%になるまでの秒数
        text: {
            autoStyleContainer: false
        },
        from: { color: '#aaa', width: 1 },
        to: { color: '#333', width: 4 },
        step: function(state, circle) {
            circle.path.setAttribute('stroke', state.color);
            circle.path.setAttribute('stroke-width', state.width);
            var value = Math.round(circle.value() * 100);
            if( value === 0 ){
                circle.setText('');
            }else{
                circle.setText(value + '%');
            }
        }
    });
    bar.text.style.fontSize = '1rem';
    bar.animate(1.0);
    </script>
</body>
</html>
circle.setText部分で円形内のテキストを変更できる。
所感
本プラグインは円形以外にも四角、三角のプログレスバー等も実装できる模様。また、公式サイトにはそれぞれサンプルが用意されているので助かった。
関連記事
- 
					
													  
- 
					JavaScriptでランダムなカラーコードを生成する「RandomColor」ライブラリの利用方法先日PHPでランダムなカラーコードを生成する「RandomColor.php」ラ ... 
- 
					
													  
- 
					JavaScriptにて「QRCode.js」ライブラリを利用してQRコードを生成する方法PHPが使えない環境で動的にQRコードを生成したかった。以前にメモしたAPI等の ... 
- 
					
													  
- 
					画像にマウスを合わせると拡大表示させる「drift」ライブラリの利用方法amazon等ECサイトで商品画像にマウスを合わせると当該部分が拡大表示されると ... 
- 
					
													  
- 
					JavaScriptにてテキストボックスにサジェスト機能を実装できる「autoComplete.js」の利用方法以前にjQuery UIでテキストボックスにサジェスト(入力補助)機能を実装する ... 
- 
					
													  
- 
					JavaScriptのマップ用ライブラリ「MapLibre GL JS」の利用方法あるサイトをWappalyzerで調査していた際に「MapLibre GL JS ...