微信小程序 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 相关文章推荐
深入理解jQuery中live与bind方法的区别
Dec 18 Javascript
JavaScript生成随机字符串的方法
Mar 19 Javascript
使用jquery实现仿百度自动补全特效
Jul 23 Javascript
jquery判断复选框是否被选中的方法
Oct 16 Javascript
JavaScript Math.round() 方法
Dec 18 Javascript
CSS3 3D 技术手把手教你玩转
Sep 02 Javascript
Vue 实现树形视图数据功能
May 07 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
Aug 31 Javascript
Vue.js 十五分钟入门图文教程
Sep 12 Javascript
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
VsCode里的Vue模板的实现
Aug 12 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 定界符 使用技巧
2009/06/14 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
索趣科技的答案
2007/02/07 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
一个关于jqGrid使用的小例子(行按钮)
2011/11/04 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
pyside写ui界面入门示例
2014/01/22 Python
Python对象的深拷贝和浅拷贝详解
2014/08/25 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
使用python存储网页上的图片实例
2018/05/22 Python
python opencv实现证件照换底功能
2019/08/19 Python
浅谈pc和移动端的响应式的使用
2019/01/03 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
房地产融资计划书
2014/01/10 职场文书
《晏子使楚》教学反思
2014/02/08 职场文书
毕业实习评语
2014/02/10 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
秋季开学典礼主持词
2014/03/19 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android