此文章主要是对canvas组件的介绍与基本的使用。在组件中绘画了一条固定的直线。
我们先了解一下canvas组件:
wxml:
<canvas binderror=
"canvasIdErrorCallback"
bindtouchend=
"EventHandle"
bindtouchstart=
"EventHandleStart"
canvas-id=
"myCanvas"
class=
"myCanvas"
disable_scroll=
""
></canvas
注:
canvas 标签默认宽度300px、高度225px同一页面中的 canvas-id 不可重复,如果使用一个已经出现过的 canvas-id,该 canvas 标签对应的画布将被隐藏并不再正常工作disable_scroll属性可以禁止画布在移动时且有手势事件时,禁止屏幕滚动以及下拉刷新
wxss:
.myCanvas{ border: 1px solid; //给一个边框 }
咱们看一下js中是怎么对carvas操作的
//test.js Page({ data: {}, onl oad: 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 中。 } })
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
tip:canvas组件是由客户端创建的原生组件,它的层级是最高的,不能通过 z-index 控制层级。tip: 请勿在scroll-view、swiper、picker-view、movable-view中使用canvas组件。tip:css动画对canvas组件无效。bug: 避免设置过大的宽高,在安卓下会有crash的问题
全国7x24小时客服热线
所有故障均24小时内解决
项目一次性收费安心
技术人员均从业5年以上
通过技术营销传播企业服务价值
丰富的行业实战经验积累
基于需求研发多款产品
针对需求提供精细化服务