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


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

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

    wx.canvasToTempFilePath转为图片,转为图片就能定义层级了

    1. <template>
    2. <canvas wx:if="{{!canvasSrc}}" class="cancas_wh" canvas-id="canvasArc3"></canvas>
    3. <image src="{{canvasSrc}}" class="img_canvas" mode="aspectFill"></image>
    4. </template>
    5. data = {
    6. canvasSrc: '',
    7. }
    8. showScoreAnimation1(copyRightItems) {
    9. //这里是绘制圆
    10. let that = this
    11. // 这部分是灰色底层
    12. let cxt_arc = wx.createCanvasContext('canvasArc1') //创建并返回绘图上下文context对象。
    13. cxt_arc.setLineWidth(6) //绘线的宽度
    14. cxt_arc.setStrokeStyle('#F3F3F3') //绘线的颜色
    15. cxt_arc.setLineCap('round') //线条端点样式
    16. cxt_arc.beginPath() //开始一个新的路径
    17. cxt_arc.arc(this.cxt_xx, this.cxt_xx, this.cxt_rr, 0, 2 * Math.PI, false) //设置一个原点(53,53),半径为50的圆的路径到当前路径
    18. cxt_arc.stroke() //对当前路径进行描边
    19. //这部分是绿色部分
    20. cxt_arc.setLineWidth(6)
    21. if (copyRightItems <= 100) {
    22. cxt_arc.setStrokeStyle('#509234')
    23. } else {
    24. cxt_arc.setStrokeStyle('#f05b26')
    25. }
    26. cxt_arc.setLineCap('round')
    27. cxt_arc.beginPath() //开始一个新的路径
    28. cxt_arc.arc(
    29. this.cxt_xx,
    30. this.cxt_xx,
    31. this.cxt_rr,
    32. (-Math.PI * 1) / 2,
    33. 2 * Math.PI * (copyRightItems / 100) - (Math.PI * 1) / 2,
    34. false
    35. )
    36. cxt_arc.stroke() //对当前路径进行描边
    37. //这里是重点!!只要看这里就行 针对层级问题转图片
    38. cxt_arc.draw(false, () => {
    39. wx.canvasToTempFilePath({
    40. canvasId: 'canvasArc1',
    41. success: function(res) {
    42. console.log(res.tempFilePath, '图片地址')
    43. //uploadImg方法是后台接口,为了上传到阿里云,转为网络图片地址
    44. uploadImg(res.tempFilePath, (url) => {
    45. that.canvasSrc = url
    46. console.log(urlh, '图片线上地址')
    47. that.$apply()
    48. })
    49. },
    50. })
    51. })
    52. }

    1. // 设置
    2. .cancas_wh {
    3. width: 240rpx;
    4. height: 240rpx;
    5. }
    6. // 设置canvas图片的大小
    7. .img_canvas {
    8. height: 280rpx;
    9. width: 280rpx;
    10. }

  • 相关阅读:
    C语言操作符深度解析(四)
    汽车辅助系统
    自研多模态追踪算法 PICO 为「手柄小型化」找到新思路
    NetSim网络仿真使用及静态路由配置
    [GStreamer] 定义并使用多参数信号
    2022.07月总结
    【OpenCV】OpenCV (C++) 与 OpenCvSharp (C#) 之间数据通信
    驱动开发DAY4
    【c++ primer 笔记】第9章 顺序容器
    海棉结构sponge construction
  • 原文地址:https://blog.csdn.net/weixin_43923808/article/details/126470285