创新互联百度小程序教程:canvas

  • canvas
    • 示例
      • 代码示例
    • 坐标系
      • 代码示例:
    • 常见问题
      • Q:小程序页面头部可否支持渐变色?

    canvas

    解释:canvas 画布。可使用 JS 操作 canvas 上下文,发出指令,进行绘制。

    创新互联主营行唐网站建设的网络公司,主营网站建设方案,成都app软件开发公司,行唐h5小程序开发搭建,行唐网站营销推广欢迎行唐等地区企业咨询

    示例

    代码示例

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

    • SWAN
    • JS
     
     
     
     
     
     
    1. Page({
    2. onLoad() {
    3. const CanvasContext = this.createCanvasContext('myCanvas');
    4. CanvasContext.setFillStyle('#ff0000');
    5. CanvasContext.arc(100, 100, 50, 0, 2 * Math.PI);
    6. CanvasContext.fill();
    7. CanvasContext.draw();
    8. }
    9. });

    我们来回顾一下,刚刚都执行了哪些指令:

    1、创建绘图上下文

    推荐使用 Page 对象上挂载的createCanvasContext方法,进行绘制上下文的创建:

    • JS
     
     
     
    1. Page({
    2. onLoad () {
    3. const CanvasContext = this.createCanvasContext('myCanvas');
    4. }
    5. });

    当然,也可以使用 SWAN 上挂载的createCanvasContext方法。如下,我们调用 SWAN 的接口createCanvasContext创建了一个绘制上下文。

    注意:使用 SWAN 上挂载的 createCanvasContext ,会在当前用户可见的 Page 中寻找 canvas ,所以推荐 Page 对象上挂载的 createCanvasContext 方法。

    • JS
     
     
     
    1. const CanvasContext = swan.createCanvasContext('myCanvas');

    2、发送绘制指令

    设置颜色,并画一个圆,填充。

    • JS
     
     
     
    1. CanvasContext.setFillStyle('#ff0000');
    2. CanvasContext.arc(100, 100, 50, 0, 2 * Math.PI);
    3. CanvasContext.fill();

    3、绘制
    执行上面已经发出的指令,进行 canvas 绘制。

    • JS
     
     
     
    1. CanvasContext.draw();

    坐标系

    canvas 坐标系,以左上角为(0, 0),横轴为 x,纵轴为 y。
    如:CanvasContext.arc(100, 200, 50, 0, 2 * Math.PI);命令,就是在x: 100,y: 200为圆心处,开始画圆。

    我们可以在 canvas 中加上一些事件,来观测它的坐标系。

    代码示例:

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

    • SWAN
    • JS
     
     
     
    1. style="margin: 5px; border:1px solid #d3d3d3;"
    2. bindtouchstart="start"
    3. bindtouchmove="move"
    4. bindtouchend="end" />
    5. Coordinates: ({{x}}, {{y}})
     
     
     
    1. Page({
    2. data: {
    3. x: 0,
    4. y: 0,
    5. hidden: true
    6. },
    7. start(e) {
    8. this.setData({
    9. hidden: false,
    10. x: e.touches[0].x,
    11. y: e.touches[0].y
    12. })
    13. },
    14. move(e) {
    15. this.setData({
    16. x: e.touches[0].x,
    17. y: e.touches[0].y
    18. })
    19. },
    20. end(e) {
    21. this.setData({
    22. hidden: true
    23. })
    24. }
    25. });

    常见问题

    Q:小程序页面头部可否支持渐变色?

    A:使用 navigationBarBackgroundColor 无法做到渐变色的效果,可以选择使用透明框,新增返回按钮,然后进行设置。或将 navigationStyle 设置成 custom,在全屏页面中制作导航栏,自定义背景色。

    代码示例

    在开发者工具中打开

    在开发者工具中打开

    在 WEB IDE 中打开

    • SWAN
    • JS
     
     
     
    1. 内容
     
     
     
    1. Page({
    2. onLoad() {
    3. const canvasContext = this.createCanvasContext('myCanvas');
    4. const grd = canvasContext.createLinearGradient(0, 0, 200, 200);
    5. grd.addColorStop(0, 'blue');
    6. grd.addColorStop(1, 'red');
    7. canvasContext.setFillStyle(grd);
    8. canvasContext.fillRect(0, 0, 800, 100);
    9. canvasContext.draw();
    10. }
    11. });

    文章名称:创新互联百度小程序教程:canvas
    链接地址:http://www.csdahua.cn/qtweb/news21/514621.html

    网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网