微信小程序开发交流qq群   173683895

   承接微信小程序开发。扫码加微信。

正文:

此文章主要是对canvas组件的介绍与基本的使用。在组件中绘画了一条固定的直线。

我们先了解一下canvas组件:

wxml:

<canvas class='myCanvas' canvas-id="myCanvas" bindtouchstart='EventHandleStart' bindtouchend='EventHandle' binderror="canvasIdErrorCallback" disable_scroll/>

注:

  1. canvas 标签默认宽度300px、高度225px
  2. 同一页面中的 canvas-id 不可重复,如果使用一个已经出现过的 canvas-id,该 canvas 标签对应的画布将被隐藏并不再正常工作
  3. disable_scroll属性可以禁止画布在移动时且有手势事件时,禁止屏幕滚动以及下拉刷新

wxss:

.myCanvas{border: 1px solid; //给一个边框
}

看一下效果:

咱们看一下js中是怎么对carvas操作的

//test.js
Page({data: {},onLoad: function () {},onReady:function(){var my_carvas = wx.createCanvasContext('myCanvas', this) //1.创建carvas实例对象,方便后续使用。my_carvas.setStrokeStyle('red') //设置边框颜色。my_carvas.moveTo(20,100)  //设置绘画路线的起点 (20,100)>>>(当前画布对象的 x 轴,当前画布对象的 y 轴)my_carvas.lineTo(120, 100)  //增加一个新点,然后创建一条从上次指定点到目标点的线。(120,100)>>>(当前画布对象的 x 轴,当前画布对象的 y 轴)my_carvas.stroke()  //画出当前路径的边框。默认颜色色为黑色。my_carvas.draw()   //将之前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中。}
})

设置起点与终点,绘画一条直线如图:(由左至右100个像素点)

canvas标签属性:

画布。

属性名 类型 默认值 说明
canvas-id String   canvas 组件的唯一标识符
disable-scroll Boolean false 当在 canvas 中移动时且有绑定手势事件时,禁止屏幕滚动以及下拉刷新
bindtouchstart EventHandle   手指触摸动作开始
bindtouchmove EventHandle   手指触摸后移动
bindtouchend EventHandle   手指触摸动作结束
bindtouchcancel EventHandle   手指触摸动作被打断,如来电提醒,弹窗
bindlongtap EventHandle   手指长按 500ms 之后触发,触发了长按事件后进行移动不会触发屏幕的滚动
binderror EventHandle   当发生错误时触发 error 事件,detail = {errMsg: 'something wrong'}

注意事项:Bug & Tip

  1. tipcanvas 组件是由客户端创建的原生组件,它的层级是最高的,不能通过 z-index 控制层级。
  2. tip: 请勿在 scroll-viewswiperpicker-viewmovable-view 中使用 canvas 组件。
  3. tipcss 动画对 canvas 组件无效。
  4. bug: 避免设置过大的宽高,在安卓下会有crash的问题

【微信小程序之画布】一:canvas组件相关推荐

  1. 微信小程序如何封装自己的组件?

    在现在前端领域,最常见的话语就是组件化.工程化的内容.所有的框架都在朝着这方面发展.作为前端生态中的新兴热人物小程序的出现,同样支持组件化开发. 在我们的日常开发中,可以封装一些常用的组件达到复用效果 ...

  2. 微信小程序,自定义导航栏组件

    微信小程序,自定义导航栏组件,可兼容iPhone 11及以上留海屏显示,关于参数获取设置参照微信小程序-收藏_羽筠的博客-CSDN博客 可定义设置的内容如下: 文字及返回箭头颜色 背景图片(优先级高于 ...

  3. 微信小程序简易搭建之框架/组件库

    微信小程序简易搭建之框架/组件库 Vant weapp 下面看看如何导入 https://github.com/youzan/vant-weapp 使用教程: 1.下载后找到dist 2. 在你的项目 ...

  4. 微信小程序之画布绘制并管理多张图片

    在微信小程序的画布绘制多张图片,很简单,只需要调用drawImage就可以,但是如果要做一个图片编辑的小程序,肯定要对绘制上去的图片.文字等等进行操作,比如移动一下,旋转一下或者缩放等等.但普通的画布 ...

  5. 微信小程序---swiper轮播图组件

    微信小程序-swiper轮播图组件 在components中新建文件夹swiper components/swiper/swiper.wxml <!--components/swiper/swi ...

  6. 《微信小程序-进阶篇》Lin-ui组件库源码分析-列表组件List(一)

    大家好,这是小程序系列的第二十篇文章,在这一个阶段,我们的目标是 由简单入手,逐渐的可以较为深入的了解组件化开发,从本文开始,将记录分享lin-ui的源码分析,期望通过对lin-ui源码的学习能加深组 ...

  7. 微信小程序 select 下拉框组件

    一.源码地址 GitHub - imxiaoer/WeChatMiniSelect: 微信小程序 select 下拉框组件 二.效果图 录屏图片质量较差,所以大家会看到残影(捂脸) 三.组件源码 1. ...

  8. 【微信小程序之画布】三:手指触摸绘画椭圆

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 功能:根据手指触摸绘画一个椭圆路径--> 起点为手指开始触摸时的坐标,终点为手指触摸结束时的坐标 ...

  9. uni.canvasToTempFilePath在app正常,微信小程序报错: fail canvas is empty

    问题描述: 在微信小程序使用uni.canvasToTempFilePath,画布可以画出图像,但是生成图片临时路径报错:fail canvas is empty . 问题分析: uni.canvas ...

最新文章

  1. TensorFlow练习20: 使用深度学习破解字符验证码
  2. 云原生的浪潮下,为什么运维人员适合学习Go语言?
  3. 五十、opencv调用USB摄像头并保存图片
  4. 股票系列,动态规划,加油,九月太浪了,十月不许浪
  5. OpenCV内置OpenCV的实例(附完整代码)
  6. 微擎支付返回商户单号_一步一步教你在SpringBoot中集成微信扫码支付
  7. 【CASS精品教程】南方CASS内业基本作图--野外测记草图法绘制常见地物教程
  8. 海洋CMS仿7KB影视电影在线播放网站模板
  9. 戴尔服务器t110做系统,戴尔服务器T110
  10. ha linux 设置虚拟ip_如何在虚拟机中设置CentOS静态IP?
  11. USACO3.22Stringsobits
  12. 自动泊车算法中混合A*粗路径的MATLAB实现
  13. java方法不写访问权限_【JAVA小白】 问关于访问权限的问题,写接口遇到错误
  14. 那一年,创业 vs 阿里(下):阿里篇
  15. 移动应用设计领域中最拔尖的15大应用
  16. js存取cookie以及设置cookie储存时间
  17. Android Fingerprint属性
  18. 数据可视化笔记4 结构数据的可视化图形
  19. ymlm启用root用户
  20. BS EN 438-4装饰用薄板材压实层压制件的分类和规范

热门文章

  1. 一起学Hadoop——实现两张表之间的连接操作
  2. Filter(过滤器)
  3. jdk8飞行记录器配置
  4. Java中单元测试中:@BeforeClass,@Before,@Test,@After,@AfterClass中的问题详解
  5. BZOJ 2780: [Spoj]8093 Sevenk Love Oimaster( 后缀数组 + 二分 + RMQ + 树状数组 )
  6. 库存事务处理现有量检查
  7. 关于loader加载的东西必须是继承sprite
  8. 通过Python在Windows或Linux上快速搭建HTTP服务器
  9. OpenCV3.3中支持向量机(Support Vector Machines, SVM)实现简介及使用
  10. 设计模式之命令模式(Command)摘录