冷墨渡曲寒
冷墨渡曲寒
  • 发布:2019-11-01 16:50
  • 更新:2019-11-01 16:50
  • 阅读:1345

【报Bug】H5端canvas写在onReady生命周期中,页面加载后一闪而过

分类:uni-app

详细问题描述

在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

2019-11-01 16:50 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复