按照例程上面的代码,使用onload()触发无法画出此渐变,写了个click事件却可以。困惑
onload: function () {
const ctx = wx.createCanvasContext( 'myCanvas' )
const grd = ctx.createLinearGradient(0, 0, 200, 0)
grd.addColorStop(0, 'red' )
grd.addColorStop(1, 'white' )
ctx.setFillStyle(grd)
ctx.fillRect(10, 10, 150, 80)
ctx.draw()
},
drawCanvas: function () {
const ctx = wx.createCanvasContext( 'myCanvas' )
const grd = ctx.createLinearGradient(0, 0, 200, 0)
grd.addColorStop(0, 'red' )
grd.addColorStop(1, 'white' )
ctx.setFillStyle(grd)
ctx.fillRect(10, 10, 150, 80)
ctx.draw()
}
|
< canvas
canvas-id = 'myCanvas'
style = 'margin:5px; border:1px solid #d3d3d3;'
bindtouchstart = 'start'
bindtouchmove = 'move'
bindtouchend = 'end' />
< view hidden = "{{hidden}}" >
Coordinates:({{x}}, {{y}})
</ view >
< view bindtap = 'drawCanvas' >click me</ view >
|
onLoad里 canvas组件还没被渲染出来,最快也得在onReady里
谢谢 ,我想着应该会是这样,但是看着例程中的话就给略过了
放在onready里面确实可以的。
嘿嘿嘿