写了这个,但是有一定几率会出现下面的情况,很是无解。想问下,什么情况才会出现 canvas 画图不在画布上?
一定概率 = 刷新页面10次可能出现一次。
datas.forEach((e, index) => { _this.drawCircle(e.a * 1 / e.b * 1, 'canvas' + index, e.color) }) //--------------------- drawCircle: function (step, id, color) { var dpi = this .format_rpx() console.log( 'px' , dpi) var ctx = wx.createCanvasContext(id); // 参数step 为绘制的圆环周长,从0到2为一周 。 -Math.PI / 2 将起始角设在12点钟位置 ,结束角 通过改变 step 的值确定 // let bengen = (step * 2 - 0.5) * Math.PI; if (isNaN(step)){ step = 1 } let bengen = (step * 2) * Math.PI - Math.PI / 2 console.log(step, id, step * 2 - 0.5) ctx.beginPath(); ctx.setLineWidth(dpi.border); ctx.setStrokeStyle(color); ctx.arc(dpi.px, dpi.px, dpi.dot, -Math.PI / 2, bengen); ctx.stroke(); // ctx.draw(); ctx.beginPath(); ctx.setStrokeStyle( '#f0f0f0' ); ctx.arc(dpi.px, dpi.px, dpi.dot, bengen, 1.5 * Math.PI); ctx.stroke(); ctx.setFontSize(20) ctx.setStrokeStyle( '#666' ) ctx.setTextBaseline( 'middle' ) ctx.setTextAlign( 'center' ) // 转换百分比 let num = Math.floor(step * 100) + '%' ctx.fillText(num, dpi.px, dpi.px) ctx.draw(); }, |
我也遇到了同样的问题,偶现画图不在画布上。求官方@ 目前是ios出现了该问题