微信小程序 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 相关文章推荐
JavaScript 继承详解(一)
Jul 13 Javascript
js chrome浏览器判断代码
Mar 28 Javascript
jquery ajax属性async(同步异步)示例
Nov 05 Javascript
jquery实现的导航固定效果
Apr 28 Javascript
jQuery实现的网页竖向菜单效果代码
Aug 26 Javascript
Javascript实现Array和String互转换的方法
Dec 21 Javascript
AngularJS基础 ng-copy 指令实例代码
Aug 01 Javascript
整理一下常见的IE错误
Nov 18 Javascript
jQuery 的 ready()的纯js替代方法
Nov 20 Javascript
bootstrap表单示例代码分享
May 18 Javascript
ES6学习教程之对象字面量详解
Oct 09 Javascript
10行代码实现微信小程序滑动tab切换
Dec 28 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
ThinkPHP路由机制简介
2016/03/23 PHP
PHP session 会话处理函数
2016/06/06 PHP
php查询及多条件查询
2017/02/26 PHP
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
python list数据等间隔抽取并新建list存储的例子
2019/11/27 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
Django-migrate报错问题解决方案
2020/04/21 Python
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
中专生毕业个人鉴定
2014/02/26 职场文书
学校招生宣传广告词
2014/03/19 职场文书
化工专业求职信
2014/07/01 职场文书
最感人的道歉情书
2015/05/12 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server
2022漫威和DC电影上映作品
2022/04/05 欧美动漫
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技