详细问题描述
在H5端使用canvas的API,写在onReady中,在页面刷新的时候canvas绘制的图画一闪而过不是一直在页面中显示,代码如下
ctx.beginPath()
ctx.arc(60, 60, 30, 0, 2 * Math.PI)
ctx.setFillStyle("#FF0000")
ctx.fill()
ctx.stroke()
ctx.draw()
但是,如果再页面中的DOM元素绑定事件,然后调用事件函数的时候是 可以显示canvas绘制的图画,代码如下
canvasTap() {
ctx.beginPath()
ctx.moveTo(100, 200)
ctx.rect(100, 200, 60, 40)
ctx.stroke()
console.log(222)
ctx.beginPath()
ctx.moveTo(60, 60)
ctx.arc(60, 60, 30, 0, 2 * Math.PI)
ctx.setFillStyle("#FF0000")
ctx.fill()
//draw方法只需要最后调用一次,把所有绘制的图形都显示到canvas中
ctx.draw()
}
[内容]
重现步骤
[步骤]
1.在页面中创建canvas绘图上下文本
var ctx = uni.createCanvasContext('myCanvas', this)
2.在onReady声明周期函数中写入如下代码
ctx.beginPath()
ctx.arc(60, 60, 30, 0, 2 * Math.PI)
ctx.setFillStyle("#FF0000")
ctx.fill()
ctx.stroke()
ctx.draw()
[结果]
在H5端。页面加载完成后页面是空白,没有显示canvas绘制的图形
[期望]
页面加载完成显示内容的时候,就显示canvas绘制的图形
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明] HBuilderX 2.3.7.20191024
[windows版本号] Windows 10 1903
uni-app运行环境说明
[运行端是h5或app或某个小程序?] 运行于H5端
[运行端版本号] 谷歌浏览器 78.0.3904.70(正式版本) (64 位)
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
项目由HBuilderX创建
[编译模式是老模板模式还是新的自定义组件模式?]
变异模式是新的自定义组件模式
App运行环境说明
[Android版本号]
[iOS版本号]
[手机型号]
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
代码片段上面说明中已有
联系方式
[QQ] 332814291
0 个回复