微信小程序 canvas API详解及实例代码


Posted in Javascript onOctober 08, 2016

微信小程序 canvas API详解及实例代码

绘图是每个移动应用必备的技术,基本上和Android,IOS,等移动开发都是相同的,创建个上下文,给你个画布再上画,官网给的小例子都比较全了自己去看吧,drawImage时没有反应不知道是BUG还是电脑不能测试待定,http://wxopen.notedown.cn/api/api-canvas.html

屏幕就像是数学上的坐标轴,且在第四象限,以屏幕左上角为圆点,X轴向右为正向左为负,Y轴向下为正向上为负(这点和数学上相反的)以圆点为基点画个距离圆点上下50宽高100的矩形来演示canvas基本用法

微信小程序这里提供了两个API

wx.createContext() 创建并返回绘图上下文context对象

getActions 获取当前context上存储的绘图动作,对应wx.drawCanvas(object)中的actions
clearActions 清空当前的存储绘图动作

wx.drawCanvas(object) 绘制

canvasId 画布标识,传入的cavas-id,这里的标识可以为Number,也可以是String
actions 绘图动作数组,由wx.createContext创建的context,调用getActions方法导出绘图动作数组。

绘图中可以进行变形,绘制,路径,样式,这些个东西有点多官网有例子,这里通过一个例子引入

wxml

<!--画布
 canvas-id 为画布标识,当绘制时通过canvas-id找到画布
-->
<canvas canvas-id="identify"/>

js

Page({
 data:{
  text:"Page canvas"
 },
 onLoad:function(options){
  // 页面初始化 options为页面跳转所带来的参数
 },
 onReady:function(){
  // 页面渲染完成
  //第一步创建个上下文容器
  var context = wx.createContext();

  //第二步绘制这里我们绘制个矩形 
  //x, y, widht, height
  context.rect(50, 50, 100, 100);
  //绘制的样式进行描边绘制,fill为填充位置
  context.stroke();
  /**
   * 调用wx.drawCanvas,通过canvasId指定在哪张画布上绘制,通过actions指定绘制行为
   * 
   *  注意convasId可以为数字表示也可以用字符串表示,就是一个绘制对象的标识,并且可以指定多个
   *  actions 是从context上下文中获取的绘制行为,即为第二步操作
   */

  wx.drawCanvas({
   //画布标识,传入<canvas/>的cavas-id
   canvasId: 'identify',
   //获取绘制行为, 就相当于你想做到菜context.getActions()就是食材
   actions: context.getActions(),
  })


 },
 onShow:function(){
  // 页面显示
 },
 onHide:function(){
  // 页面隐藏
 },
 onUnload:function(){
  // 页面关闭
 }
})

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jqgrid 简单学习笔记
May 03 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
Jun 24 Javascript
jquery计算鼠标和指定元素之间距离的方法
Jun 26 Javascript
javascript简单实现类似QQ头像弹出效果的方法
Aug 03 Javascript
深入理解JS正则表达式---分组
Jul 18 Javascript
jQuery UI仿淘宝搜索下拉列表功能
Jan 10 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
Feb 09 Javascript
Map.vue基于百度地图组件重构笔记分享
Apr 17 Javascript
Bootstrap Table列宽拖动的方法
Aug 15 Javascript
vue实现form表单与table表格的数据关联功能示例
Jan 29 Javascript
详解vue项目中调用百度地图API使用方法
Apr 25 Javascript
JavaScript大数相加相乘的实现方法实例
Oct 18 Javascript
微信小程序 animation API详解及实例代码
Oct 08 #Javascript
AngularJS实践之使用NgModelController进行数据绑定
Oct 08 #Javascript
Bootstrap Navbar Component实现响应式导航
Oct 08 #Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
Oct 08 #Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
Oct 08 #Javascript
Javascript单例模式的介绍和实例
Oct 08 #Javascript
jquery把int类型转换成字符串类型的方法
Oct 07 #Javascript
You might like
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
PHPstorm快捷键(分享)
2017/07/17 PHP
收集的10个免费的jQuery相册
2011/02/26 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
JQuery中基础过滤选择器用法实例分析
2015/05/18 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
python 输出所有大小写字母的方法
2019/01/02 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
Python设计密码强度校验程序
2020/07/30 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
英国时尚服饰电商:Boohoo
2017/10/12 全球购物
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
物流仓管员岗位职责
2013/12/04 职场文书
家长评语怎么写
2014/12/30 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android
vue router 动态路由清除方式
2022/05/25 Vue.js