关于微信小程序前端Canvas组件教程
关于微信小程序前端Canvas组件教程
微信小程序Canvas接口函数








上述为微信小程序Canvas的内部接口,通过熟练使用Canvas,即可画出较为美观的前端页面。下面是使用微信小程序画图的一些例子。
微信小程序画图实例
基本步骤
wxml中代码:
<canvas canvas-id="myCanvas" class="myCanvas" ></canvas>
js中onLoad()函数
const ctx = wx.createCanvasContext('myCanvas')//创建Canvas
ctx.setFillStyle('green')//选择填充颜色
ctx.fillRect(10, 10, 150, 75)//形状描述
ctx.draw()//绘制图像
路径的画法:
const ctx = wx.createCanvasContext('myCanvas')//创建Canvas
ctx.moveTo(10, 10)//初始点选择
ctx.lineTo(100, 10)//画线
ctx.lineTo(100, 100)
ctx.fill()//填充形状
ctx.draw()
文字的画法:
const ctx = wx.createCanvasContext('myCanvas')
ctx.setFontSize(20) //文字大小
ctx.fillText('Hello', 20, 20) //文字后跟的参数为文字启示坐标
ctx.fillText('MINA', 100, 100)
ctx.draw()
圆角矩形的画法
const bot = wx.createCanvasContext('bottcan')
bot.moveTo(0, 0)
bot.lineTo(wid / 2 - 15, 0)
bot.lineTo(wid / 2 + 15, 35)
bot.lineTo(10, 35)
bot.arc(0 + 10, 35 - 10, 10, Math.PI * 0.5, Math.PI)//勾画圆角矩形的线段
bot.setFillStyle('#FF9955')
bot.fill()
bot.setFillStyle('#414141')
bot.setFontSize(20)
bot.fillText('重填问卷', 50, 25)
按照手机比例画图方法
在生成Canvas的时候,需要固定宽度和高度,其中高度比较好固定,但是宽度的固定就比较困难,因为不同手机型号宽度不同,因此需要得知本机可使用宽度为多少。
<canvas canvas-id="myCanvas" class="myCanvas" style = "width:{{windowWidth}}px;height:35px" ></canvas>
var that = this;
wx.getSystemInfo({
success: function (res) {
console.log(res.windowWidth) //获取用户手机宽度
that.setData
({
windowWidth: res.windowWidth * 0.94
})
}
})
var wid = this.data.windowWidth;
微信小程序层级问题
在微信小程序中,Canvas这种默认组件的层级为最高,因此在弹出确认与否的提示时,Canva会影响使用,用户无法点击确认或取消,只能点击Canvas按钮,因此需解决该问题。
解决方案
在点击出现选择框时,将Canvas隐藏,并且生成一张与原始画布相同的图片放在该位置,从而达到降低Canvas层级的效果。
js代码:
//radaarImg为导出的图片
var that = this
wx.canvasToTempFilePath({
width: that.data.windowWidth,
height: 35,
canvasId: 'myCanvas',
success: function (res) {
that.setData({ radarImg: res.tempFilePath });
}
});
wxml代码:
<view wx:if = "{{!can1}}">
<canvas canvas-id="myCanvas" class="myCanvas" style = "width:{{windowWidth}}px;height:35px" ></canvas>
</view>
<image wx:else src="{{radarImg}}" style="width: {{windowWidth}}px; height:35px;" />
效果展示:

关于微信小程序前端Canvas组件教程的更多相关文章
- 微信小程序,前端大梦想(六)
微信小程序,前端大梦想(六) 微信小程序之联合百度API实现定位 定位功能对于我们都不陌生,在移动端的应用中更是不可或缺的功能,小程序中也提供了对应的API帮助我们完成定位的实现,但是目前小程序的定位 ...
- 微信小程序前端页面书写
微信小程序前端页面书写 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 一.数据绑定 1. 普通写法 <view ...
- 微信小程序前端样式WXSS书写
微信小程序前端样式WXSS书写 一. WXSS的简单介绍 WXSS(WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式. 与 CSS 相比,WXSS 扩展的特性有: ...
- 微信小程序开发语音识别文字教程
微信小程序开发语音识别文字教程 现在后台 添加插件 微信同声传译 然后app.json 加入插件 "plugins": { "WechatSI": { &quo ...
- 完整微信小程序授权登录页面教程
完整微信小程序授权登录页面教程 1.前言 微信官方对getUserInfo接口做了修改,授权窗口无法直接弹出,而取而代之是需要创建一个button,将其open-type属性绑定getUseInfo方 ...
- 微信小程序内置组件web-view的缓存问题探讨
前言:博客或者论坛上面,还有自习亲身经历,发现微信小程序的webview组件的页面缓存问题相当严重,对开发H5的小童鞋来说应该困扰了不少.很多小童鞋硬是抓破脑袋也没有办法解决这个问题,那我们今天就来探 ...
- 微信小程序引入ECharts组件
首先打开ECharts网页 https://echarts.apache.org/zh/tutorial.html#%E5%9C%A8%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8 ...
- hello-weapp 微信小程序最简示例教程
打开微信小程序官方开发文档,最好全篇看一遍,基本上就会了. 点击文档中 工具 选项卡中 下载工具页面 下载对应系统版本的微信开发者工具 注意:脱离微信开发者工具是不能调试的 好了,安装下工具即可打开, ...
- 微信小程序之swiper组件高度自适应
微信小程序之swiper组件高度自适应 要求: (顶部广告栏 ) 改变swiper组件的固定高度,使之随内部每张图片的高度做自适应 原理: 图片加载完之后,获取图片的原始宽高,根据宽高比,计算出适应后 ...
随机推荐
- Java-Queue总结
1. ConcurrentLinkedQueue 基础链表同步队列. import java.util.Queue; import java.util.concurrent.ConcurrentLin ...
- Blend Brush介绍
原文:Blend Brush介绍 这篇文章会介绍 Blend怎么设置Brush 全局画刷 1)blend面板的介绍 这5个rectangle分别对应 blend中的 5个设置 1 设置无颜色 2 设置 ...
- html 图片滚动代码
我自己也在用的,网页常用!分享出来 最简单易懂源码 <!--下面是向上滚动代码--> <div id=butong_net_top style=overflow:hidden;hei ...
- MySQL 分库分表及其平滑扩容方案
转自:https://kefeng.wang/2018/07/22/mysql-sharding/ 众所周知,数据库很容易成为应用系统的瓶颈.单机数据库的资源和处理能力有限,在高并发的分布式系统中,可 ...
- C#常用集合类的实现以及基本操作复杂度
List 集合类是顺序线性表,Add操作是O(1)或是O(n)的,由于List的容量是动态扩容的,在未扩容之前,其Add操作是O(1),而在需要扩容的时候,会拷贝已存在的那些元素同时添加新的元素,此时 ...
- 为啥git会这么差!!!!
删除分支 git push origin --delete Chapater6 可以删除远程分支Chapater6 git branch -d Chapater8 可以删除本地分支(在主分支中) ...
- android studio学习----添加项目依赖包补充---添加github上的开源项目为库
导入maven中的库 如果开源库作者有将代码放到Maven库中,我们可以在gradle配置中直接引入,类似如下: compile 'com.github.dmytrodanylyk.android-p ...
- 未能加载文件或程序集“Spire.Pdf, Version=4.8.8.2020, Culture=neutral, PublicKeyToken=663f351905198cb3”或它的某一个依赖项。未能授予最小权限请求
问题:运行程序执行到代码报错:未能加载文件或程序集“Spire.Pdf, Version=4.8.8.2020, Culture=neutral, PublicKeyToken=663f3519051 ...
- ETL DAG调度策略
1.目前etl的fetch task策略是基于任务子孙任务数和任务优先级获得task list 2.然后遍历task list 查看任务是否具备执行条件 集群资源校验(yarn/hdfs)<如果 ...
- Linux用户环境配置文件
用户操作环境配置文件: 从/etc/skel目录复制过来 .bashrc 打开新终端 /etc/bashrc .bash_profile 用户登 ...