【微信小程序】解决canvas组件层级最高问题

这篇具有很好参考价值的文章主要介绍了【微信小程序】解决canvas组件层级最高问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、为什么canvas组件总是会在最上层? 因为canvas组件是由客户端创建的原生组件,原生组件层级是最高的,所以页面中的其他组件无论设置 z-index 为多少都无法盖在原生组件上。

2、如何解决canvas层级最高问题?                                                   

wx.canvasToTempFilePath转为图片,转为图片就能定义层级了文章来源地址https://www.toymoban.com/news/detail-513672.html

<template>  
 <canvas wx:if="{{!canvasSrc}}" class="cancas_wh" canvas-id="canvasArc3"></canvas>
   <image src="{{canvasSrc}}" class="img_canvas" mode="aspectFill"></image>
 </template>

  data = {
    canvasSrc: '',
}
  showScoreAnimation1(copyRightItems) {
//这里是绘制圆
    let that = this
    // 这部分是灰色底层
    let cxt_arc = wx.createCanvasContext('canvasArc1') //创建并返回绘图上下文context对象。
    cxt_arc.setLineWidth(6) //绘线的宽度
    cxt_arc.setStrokeStyle('#F3F3F3') //绘线的颜色
    cxt_arc.setLineCap('round') //线条端点样式
    cxt_arc.beginPath() //开始一个新的路径
    cxt_arc.arc(this.cxt_xx, this.cxt_xx, this.cxt_rr, 0, 2 * Math.PI, false) //设置一个原点(53,53),半径为50的圆的路径到当前路径
    cxt_arc.stroke() //对当前路径进行描边
    //这部分是绿色部分
    cxt_arc.setLineWidth(6)
    if (copyRightItems <= 100) {
      cxt_arc.setStrokeStyle('#509234')
    } else {
      cxt_arc.setStrokeStyle('#f05b26')
    }
    cxt_arc.setLineCap('round')
    cxt_arc.beginPath() //开始一个新的路径
    cxt_arc.arc(
      this.cxt_xx,
      this.cxt_xx,
      this.cxt_rr,
      (-Math.PI * 1) / 2,
      2 * Math.PI * (copyRightItems / 100) - (Math.PI * 1) / 2,
      false
    )
    cxt_arc.stroke() //对当前路径进行描边

//这里是重点!!只要看这里就行  针对层级问题转图片

    cxt_arc.draw(false, () => {
      wx.canvasToTempFilePath({
        canvasId: 'canvasArc1',
        success: function(res) {
console.log(res.tempFilePath, '图片地址')
//uploadImg方法是后台接口,为了上传到阿里云,转为网络图片地址
          uploadImg(res.tempFilePath, (url) => {
            that.canvasSrc = url
            console.log(urlh, '图片线上地址')
            that.$apply()
          })
        },

      })
    })
  }
 
 
// 设置 
.cancas_wh {
  width: 240rpx;
  height: 240rpx;
}

// 设置canvas图片的大小
.img_canvas {
  height: 280rpx;
  width: 280rpx;
}

到了这里,关于【微信小程序】解决canvas组件层级最高问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【uniapp】使用canvas组件编译到微信小程序兼容出错问题

    使用uniapp编译跨平台项目会遇到不少兼容问题,这里主要讲canvas组件的,编译到微信小程序会有兼容出错问题,这里给讲一下解决方案,希望有帮助。 如果使用 CanvasContext 绘制,以下代码,编译到微信小程序上可能发现绘制不出来 看canvas组件的属性 type=\\\"2d\\\" 是否有加,要去掉

    2024年02月02日
    浏览(165)
  • 解决uniapp微信小程序canvas不能引入字体的问题

    这是微信小程序最近修复问题,里面有关于loadFontFace的修复 在使用前要先把调试基础库调整为 2.25.1 ,我调到这个版本就好其他的版本我也没试 下面是我画布导出的大概效果 姓名这里使用了字体,白色的轮廓是字体轮廓填充 首先要了解一个api名称:uni.loadfontface 这里source里

    2024年02月09日
    浏览(64)
  • uniapp开发小程序中因uchart的canvas层级过高遮盖uni-datetime-picker组件的解决办法

    页面需要展示一个环形图,可以按时间段筛选数据,所以我用了 uchart 和 uni-datetime-picker 组件。 但uchart用到了 canvas ,其层级过高,当实机运行小程序时会遮盖弹出的uni-datetime-picker组件 当uni-datetime-picker组件弹出遮罩时,把canvas移到用户视野之外。 uni-datetime-picker组件本质就是

    2023年04月12日
    浏览(58)
  • 微信小程序使用 canvas 2d 实现签字板组件

    本文是在微信小程序中使用 canvas 2d 来实现签字板功能; 效果图: 代码: 1、wxml 2、js 3、总结 canvas 的宽度和高度可以写死,也可以根据当前可是区域动态计算;需要注意的是 res[0].node 的宽度和高度的计算是当前 canvas 元素上的宽度和高度乘设备的 pixelRatio ;

    2024年02月09日
    浏览(49)
  • 微信小程序左上角home图标的解决方法之一 层级混乱导致的home图标显示的问题 自定义左上角左侧图标的返回路径

    这个项目的编辑页在tabbar上 导致跳到tabbar得使用wx.switchTab 保存后返回原来的页面就出现了左上角的home图标 本来想通过自定义home图标的跳转路径来解决这个问题 没想到居然找不到相关内容 有清楚的朋友麻烦给我留个言不胜感激 那我写一下我的骚操作   这就是观察记录页面

    2024年02月11日
    浏览(59)
  • 基于 Taro 框架的微信小程序 canvas 绘图海报组件

    项目需要保存收款码,效果如图: (此文仅代表个人日常工作记录,能力有限描述并不全面) 1.安装 npm i taro-plugin-canvas -S --production(taro-plugin-canvas 是基于 Taro 框架的微信小程序 canvas 绘图组件,封装了常用的操作,通过配置的方式生成分享图片)  2.引入:import { TaroCanvas

    2024年01月21日
    浏览(55)
  • canvas层级太高问题的解决办法

    因为canvas组件是由客户端创建的原生组件,原生组件层级是最高的,所以页面中的其他组件无论设置 z-index 为多少都无法盖在原生组件上。 1.html页面的处理 加上一个判断wx:if=“{{!canvasImg}}” 2.js页面的处理 (1)data中声明一个变量canvasImg (2)新增方法:处理canvas转化为图片

    2024年02月12日
    浏览(35)
  • 微信小程序picker组件遇到的问题以及解决办法

    先来看一下官方文档中picker的基本概念: 从底部弹起的滚动选择器,现支持三种选择器,通过mode来区分,分别是普通选择器,时间选择器,日期选择器,默认是普通选择器。 重要属性 range: 选取范围,数据类型为Array / Object Array,mode为 普通选择器 时,range 有效; value:

    2024年02月11日
    浏览(55)
  • 解决微信小程序Echarts图表层级过高的方案

    在微信小程序中使用Echarts图表时,有时会遇到图表层级过高的问题。这可能导致图表无法正常显示或部分内容被遮挡。本文将介绍一种解决方案,通过修改Echarts图表的样式和配置,可以有效解决这个问题。 解决方案如下: 检查图表容器的样式 首先,我们需要检查图表容器

    2024年02月03日
    浏览(49)
  • 微信小程序canvas画布不清晰解决方法

    绘制的图片,文字等十分模糊 添加以下代码,通过设置分辨率来解决 完整代码: 模糊不清的时候 多多进行调试一下就可以了 多尝试新方案 

    2024年02月10日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包