wxDraw.js--小程序的 canvas 动画库正式发布(小程序开发者看过来!) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
bobiscool
V2EX    分享创造

wxDraw.js--小程序的 canvas 动画库正式发布(小程序开发者看过来!)

  •  
  •   bobiscool 2017-10-31 17:58:42 +08:00 10320 次点击
    这是一个创建于 2930 天前的主题,其中的信息可能已经有所发展或是发生改变。

    wxDraw

    wxDraw

    轻量的小程序 canvas 动画库

    github

    文档

    是什么

    canvas 是 HTML5 的一个重要元素,它能够高效的绘制图形,但是过于底层,且粗糙的 Api,导致开发者很难使用它来做较为复杂的图形, 而且它的即时绘制无记忆特性,使得它内部的图形并不支持动画更不支持一切交互事件。 这样的问题出现在所有支持 canvas 的客户端上同样出现在微信小程序中的 canvas 中, 由于小程序由jsCore支持,并没有window 对象,并且 canvas 的 Api 与标准的 canvas 的 Api有所出入,所以市面上绝大部分 canvas 库与它无缘。 而wxDraw也就应运而生,专门用于处理小程序上canvas图形创建图形动画以及交互问题的。

    特性

    • 简单不需要你会 canvas,会用 jQuery 就会使用 wxDraw。
    • 灵活所有图形,随时随地都可以进行属性修改、图形添加以及图形销毁。
    • 事件支持小程序支持的事件只要是合理的都支持。
    • 缓动动画支持wxDraw 支持链式调用动画『就像 jQuery 的 animate 一样』,并且支持几乎所有的缓动函数图形创建

    支持图形

    这些图形都可以在演示文件里看到点这里

    rect

    var rect = new Shape('rect', {x: 60, y: 60, w: 40, h: 40, fillStyle: "#2FB8AC", rotate: Math.PI/2 },'mix', true); 

    rectrect

    circle

    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) 

    polygon

    let polygon = new Shape('polygon', { x: 200, y: 200, r: 40, sides: 9, //9 边形 fillStyle: "#FC354C", rotate: Math.PI / 4 }, 'mix', true) 

    ellipse

    let ellipse = new Shape('ellipse', { x: 200, y: 200, a: 40, b: 100, fillStyle: "#00A0B0", rotate: Math.PI / 7 }, 'mix', true) 

    cshape 「自定义图形」

    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) 

    line

    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) 

    text

    let text = new Shape('text', { x: 200, y: 200, text: "我是测试文字", fillStyle: "#E6781E", rotate: Math.PI / 3} 'fill', true) 

    wxDraw 创作的动画演示

    这些动画都可以在演示文件里看到点这里

    Google

    贪吃蛇

    logo 演绎

    rect 舞蹈

    吃豆人

    wxDraw 事件

    这些事件都可以在演示文件里看到点这里

    支持

    • tap
    • touchStart
    • touchEnd
    • touchMove
    • longPress
    • drag 「自定义的事件」

    事件演示

    旁边 UI 小妹妹亲自示范

    第一视角

    是不是特别简单,特别方便!!!来,老铁们! star 走一波!!!

    详细文档还请关注 github 文档

    7 条回复    2018-05-07 15:21:17 +08:00
    qdwang
        1
    qdwang  
       2017-10-31 18:17:53 +08:00 via iPhone
    支持 造福开发人员
    bobiscool
        2
    bobiscool  
    OP
       2017-11-01 09:35:03 +08:00   1
    为什么 你们只收藏不点评。。。。作者很孤独。。。
    loethen
        3
    loethen  
       2017-11-01 09:55:30 +08:00
    赞一下,不错
    si
        4
    si  
       2017-11-01 10:22:14 +08:00
    看起来很好玩
    july1115
        5
    july1115  
       2017-11-03 15:52:44 +08:00
    感谢,很棒,有需求就用上
    bobiscool
        6
    bobiscool  
    OP
       2017-11-06 11:33:30 +08:00
    看来小程序 开发者并不多啊
    JenniferL
        7
    JenniferL  
       2018-05-07 15:21:17 +08:00
    destroy 方法的 BUG 不修复了吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2544 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 11:55 PVG 19:55 LAX 03:55 JFK 06:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86