利用canvas的fillText属性绘制文字并实现居中和清空画布

利用 canvas 画一个圆环,然后再里面绘制文字,实现居中显示。

canvas filltext.png 利用canvas的fillText属性绘制文字并实现居中和清空画布 经验总结

首先写一个 canvas 容器:

<canvas id="myCanvas" width="80" height="80"></canvas>

JS部分:

其实上半部分是绘制圆环,最后 8 行才是文字部分,可以设置字体样式、颜色、是否居中等。

function modelvisitNumber() {
    let a = 7
    let num = 925
    var c = document.getElementById('myCanvas')
    // 改变宽度清空画布
    c.width = c.width
    var ogc = c.getContext('2d') //返回一个用于在画布上绘图的环境
    ogc.beginPath() //开始一条路径 背景
    ogc.arc(40, 40, 35, 0, 2 * Math.PI) // 画圆(x坐标,y坐标,半径,起点(3点钟为0PI)),
    ogc.strokeStyle = 'rgb(69, 174, 234)' //路径的样式
    ogc.lineWidth = 10 //线的宽度
    ogc.stroke() //使用 stroke() 方法在画布上绘制确切的路径。
    var ctx = c.getContext('2d')
    ctx.beginPath() //高亮环路径
    ctx.arc(40, 40, 35, -Math.PI / 2, (a * 3.6 - 90) * Math.PI / 180)
    ctx.strokeStyle = 'rgb(190, 227, 247)'
    ctx.lineWidth = 10
    ctx.lineCap = 'butt' //线的端点:butt平直 round圆 square方
    // 设置文字居中但是fillText的第二个参数必须为画布宽度一半
    ctx.textAlign = 'center' //文字居中
    ctx.font = 'bold 16px Arial' //文字样式:加粗 16像素 字体Arial
    ctx.fillStyle = '#F09000' //字体颜色
    ctx.fillText(a + '%', 40, 35) //fillText里面的可填写的值(文本内容, x坐标, y坐标, 文本最大宽度)
    ctx.font = '14px Arial'
    ctx.fillStyle = '#FF9000'
    ctx.fillText(num + '次', 40, 50)
    ctx.stroke()
}
//调用
modelvisitNumber()


赞 (1)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)