码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【微信小程序】解决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. }

  • 相关阅读:
    无人机新手防炸飞行技巧
    为了元宇宙,Facebook下周要改名了?
    【Linux】——初识程序地址空间
    Mac用虚拟机玩游戏很卡 Mac电脑玩游戏怎么流畅运行 苹果电脑怎么畅玩Windows游戏
    [Python]Word2Vec预测,如果我的‘生命‘中减去‘爱‘会剩下什么
    @Value的注入与静态注入 与 组件中静态工具类的注入
    asp.net课程设计司库管理系统-金融理财管理系统
    矩阵相关操作与运算
    腾讯云轻量应用服务器搭配WordPress程序使用宝塔面板一键式搭建个人博客网站
    基于ghOSt用户调度器的环境搭建
  • 原文地址:https://blog.csdn.net/weixin_43923808/article/details/126470285
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号