收藏
回答

canvas画图

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug canvas 客户端 7.0.4 230

canvas画图按钮切换第二次不显示,第三次正常,后面都正常

html:

<canvas canvas-id="Canvas" wx:if="{{!showchoose}}">

</canvas>

<button bindtap="aa">左</button>

<button bindtap="aa">右</button>

js:

page({

data:{

s:0

},


getcanvas(data, total) {

total=25*this.data.s

let rpx=''

wx.getSystemInfo({

success(res) {

rpx = res.windowWidth / 375;

},

})

var array = [];

for (var s in data) {

array.push(data[s])

}

let t=this.data.s

array = [5 * t, 5 * t, 5 * t, 5 * t, 5 * t]

var ctx = wx.createCanvasContext('Canvas', this);

ctx.restore()

var colors = ["#FAC01E", "#DCDCDC", "#7A9BF0", "#26B9A0", "#0F8EE9"];

var point = {

x: 80*rpx,

y: 80*rpx

};

var radius = 50;

for (var i = 0; i < array.length; i++) {

ctx.beginPath();

var start = 0;

if (i > 0) {

for (var j = 0; j < i; j++) {

start += array[j] / total * 2 * Math.PI;

}

}

var end = start + array[i] / total * 2 * Math.PI;

var len = (i == 0 || i == 1) ? 0 : (i == 2 || i == 4) ? 10 : 20

ctx.arc(point.x, point.y, (radius + len)*rpx, start, end);

ctx.setLineWidth(1)

ctx.lineTo(point.x, point.y);

ctx.setStrokeStyle(colors[i]);

ctx.setFillStyle(colors[i]);

ctx.fill();

ctx.closePath();

}

ctx.draw();

this.setData({

s:this.data.s+10

})

ctx.save()

},

aa(){

this.getcanvas

}

})

直接写死数据都还是这样,就第二次不出现,简直了


回答关注问题邀请回答
收藏

1 个回答

  • 是小白啊
    是小白啊
    2019-07-04

    使用hidden试下

    2019-07-04
    有用
    回复 1
    • MTGH
      MTGH
      2019-07-04

      我觉得有毒,就外面包一层view第二次就不出来,外面不包就出来了 我一步步排查,看数据问题,写死数据

      最后单独建文件夹,发现正常,然后又到页面上去一步步试,还是不正常,最后删除掉页面上所有东西,单拎出来,正常了,放里面去又不正常了!!!!!!

      怎么会有这么奇葩的东西!页面里面除了cover-view以外,没有用过定位,也没有任何东西遮挡,,真的是服了,,,,,

      2019-07-04
      回复
登录 后发表内容