循例交代背景:在使用
canvas
编辑图片,使用添加弹框来自定义添加文字,在微信开发工具上是正常弹窗不会被挡到,到手机上测试,发现弹框一直会在canvas
组件后面
在官方文档中可以看到 原生组件说明
1 | 1. 原生组件的层级是最高的,所以页面中的其他组件无论设置 z-index 为多少,都无法盖在原生组件上 |
这就知道了为什么弹框会一直被挡住了,在小程序里面,原生组件的层级最高。
虽然提供了 cover-view
和 cover-image
组件,可以覆盖在原生组件上。但是不符合我的业务逻辑,我就没有用,在 google
之后,很多方式都是首先 canvas
组件转换为临时图片,然后用 <image></image>
将图片显示出来,但是这样无法继续编辑 canvas
。
所以我想了用将 canvas
和 imgae
一起用,代码如下:
1 | ## .wxml |
一开始不需要
image
组件,所以我们让他.gun
到屏幕外面去了。同样,需要用到image
的时候,我们会让canvas
也.gun
出屏幕外去
1 | ## .wxss |
在点击
添加文字
的时候,然后保存成临时文件,放到 image 组件里去,canvas 组件隐藏,弹出弹框
点击确定,canvas 组件重新回来
这样可以重新编辑,也可以弹框
主要是提供一个思路,有什么不对也欢迎大家向我反馈,请多指教