关于uniapp小程序内置canvas标签层级过高,覆盖其他标签问题

本文介绍了在uniapp开发中遇到的canvas层级问题,通过使用cover-view和cover-image,nvue语法,以及动态切换canvas和image标签的解决方案。作者分享了具体实现步骤和案例,帮助开发者避免真机测试中的层级冲突问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

uniapp

原因:是因为canvas是原生组件,而uniapp的 view、text 等标签相当于二次封装过的,给予z-index也是不生效的,微信开发者工具没有问题,但真机测试会爆这个雷

恰巧碰上一个需求需要一个canvas生成图片放在页面,点击按钮后生成一个二维码模态框,二维码也是canvas生成图片的,所以就导致不仅模态框,两个canvas图片之间层级也出现了冲突,

解决方案:

1.使用uniapp提供的 cover-view、cover-image 等标签.

2.写app端有提供nvue语法,仅支持flex布局

案例可参考:uniapp vue nvue 模态框遮罩_nicepainkiller的博客-优快云博客

【uni-app系列】uni-app之nvue使用_奔跑吧邓邓子的博客-优快云博客_uniapp 使用nvue

3.给canvas标签一个判断,判断canvas中有没有url生成,没有则使用canvas标签,有则使用image标签动态传值即可

个人采用的方案三,更简洁一些

<canvas class="mycard" canvas-id="myCanvas" v-if="!imgUrl" />
  <image  class="mycard" :src="imgUrl"
  v-if="isAuthentication==1 && imgUrl 
|| isShare==true && imgUrl" />
data(){
   return{
   imgUrl: "", // 用于存储canvans生成图片
  }
}

 效果如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值