轻量的小程序 canvas 动画库
canvas 是 HTML5 的一个重要元素,它能够高效的绘制图形,但是过于底层,且粗糙的 Api,导致开发者很难使用它来做较为复杂的图形, 而且它的即时绘制无记忆特性,使得它内部的图形并不支持动画更不支持一切交互事件。 这样的问题出现在所有支持 canvas 的客户端上同样出现在 微信小程序中的 canvas 中, 由于小程序由jsCore支持,并没有window 对象,并且 canvas 的 Api 与标准的 canvas 的 Api有所出入,所以市面上绝大部分 canvas 库与它无缘。 而wxDraw也就应运而生,专门用于处理小程序上canvas的图形创建、图形动画以及交互问题的。
这些图形都可以在演示文件里看到 点这里
var rect = new Shape('rect', {x: 60, y: 60, w: 40, h: 40, fillStyle: "#2FB8AC", rotate: Math.PI/2 },'mix', true);
let circle = new Shape('circle', { x: 100, y: 100, r: 40, sA: Math.PI/4, fillStyle: "#C0D860", strokeStyle: "#CC333F", rotate: 20, lineWidth: 0, needGra: 'line', gra: [[0, '#00A0B0'], [0.2, '#6A4A3C'], [0.4, '#CC333F'], [0.6, '#EB6841'], [1, '#EDC951']]}, 'fill', true)
let polygon = new Shape('polygon', { x: 200, y: 200, r: 40, sides: 9, //9 边形 fillStyle: "#FC354C", rotate: Math.PI / 4 }, 'mix', true)
let ellipse = new Shape('ellipse', { x: 200, y: 200, a: 40, b: 100, fillStyle: "#00A0B0", rotate: Math.PI / 7 }, 'mix', true)
let cshape = new Shape('cshape', { rotate: Math.PI / 2, points: [[70, 85], [40, 20], [24, 46], [2, 4], [14, 6], [4, 46]], lineWidth: 5, fillStyle: "#00A0B0", rotate: Math.PI / 7, needGra: 'circle', smooth:false, gra: [[0, '#00A0B0'], [0.2, '#6A4A3C'], [0.4, '#CC333F'], [0.6, '#EB6841'], [1, '#EDC951']] }, 'fill', true)
let line = new Shape('line', { points:[[240,373],[11,32],[28,423],[12,105],[203,41],[128,0.06]], strokeStyle: "#2FB8AC",lineWidth:1, rotate: 0, needShadow: true,smooth:false }, 'fill', true)
let text = new Shape('text', { x: 200, y: 200, text: "我是测试文字", fillStyle: "#E6781E", rotate: Math.PI / 3} 'fill', true)
这些动画都可以在演示文件里看到 点这里
这些事件都可以在演示文件里看到 点这里
支持
旁边 UI 小妹妹亲自示范 😜
是不是特别简单,特别方便!!!来,老铁们! star 走一波!!!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.