一个圆环进度条插件 circle-progress-bar

介绍

circle-progress-bar.js 是一款利用canvas绘制圆环进度条的插件,不依赖任何库。
效果如图:

用法

下载

git clone 此仓库,然后在html中引用 lib文件夹中的circle-progress-bar.js即可。

基础用法

<style>
    #my-canvas {
        /*利用css控制canvas元素的宽高,解决canvas本身的失真问题*/
        width: 20px; 
    }
</style>
<canvas id="my-canvas" > 
</canvas>
<script src="./circle-progress-bar.js">
</script>
<script>
    var myCanvas = document.querySelector('#my-canvas');
    var c1 = new CircleProgressBar({
        canvasDom: myCanvas
    });
</script>

参数配置

{
    canvasDom: CanvasDomNeedToSet,         // 必填的canvas dom 
    // 以下的数值为默认参数值
    r: 30,                         // 内圆半径
    lineWidth: 5,                  // border宽度
    lineColor: '#3385ff',              // border进度条颜色
    lineBgColor: '#eeeeee',                // border背景颜色
    angle: Math.PI * 0.5,                  // 需要转动的角度
    startAngle: -Math.PI * 0.5,            // 起始角度
    duration: 1000,                // 过渡时间, 单位:ms
    text: '',                      // 圆圈中的文字
    showPercent: true,             // 是否显示百分比数值
    textFontSize: 12,              // 文字大小 (px)
    textColor: '#3385ff',              // 文字颜色
    animationMode: 'linear'                // 'linear' || 'accelerate' || 'decelerate'  匀速,加速, 减速
}

兼容性

Chrome
Chrome
Firefox
Firefox
Safari
Safari
Opera
Opera
Edge
Edge
IE
IE
Latest ✔ Latest ✔ Latest ✔ Latest ✔ Latest ✔ 10+ ✔

FAQ

  • 此插件运行方向均为顺时针,暂时不支持逆时针;

  • 强烈不建议设置lineWitdh值为奇数!因为奇数线条宽度会在canvas中发虚(原因是剩余的0.5px宽度的线条颜色会变淡)

  • 当showPercent为true时,同时又存在text: '示例文字' ,则'示例文字'不会出现,只会出现百分比文字;

  • 如何解决canvas失真的问题?
    失真问题是canvas本身就会存在的问题,利用css缩小canvas的宽高即可;
    如:设置参数:r: 50, lineWidth: 10, 则此时canvas的width会是 50*2+10*2 === 120, 此时css设置#my-canvas {width: 60px;} 便缩小至了60px。

  • 可以设置多行文字吗?
    不行,只能设置单行文字。

  • 如何解决文字换行的问题?
    此插件不支持文字换行,文字过多时会造成canvas的显示不正常。
    解决方案: 设置参数showPercent: false, 然后用户自己编写文字元素并利用定位调整到圆环中心显示。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,089评论 25 709
  • 现在的南方处在一个尴尬的季节,起码我是这么认为的。在我觉得热的时候有人穿着羽绒服,当我觉得冷了裹着厚厚...
    菓实阅读 240评论 0 0
  • 早上无意间听到了郭美美的《不怕不怕》,要是以前,我肯定会排斥这首歌,可以说主要是排斥郭美美,因为她就是那个炫富女,...
    文昕夕阅读 420评论 0 2
  • 还记那对腻死人的牵手看世界夫妻吗? 旅途的风景再美,但你才是主角! 五一已经开始进入倒计时了,这时候怎么能少了炫酷...
    邻居知道阅读 1,368评论 2 45
  • 前段时间,跟一位高中同学聊天,说到故乡种种,勾起了他的乡愁。他离乡日久,说是很想清明前回乡一趟,以慰乡...
    楚山青青阅读 534评论 2 5