zoukankan      html  css  js  c++  java
  • 微信小程序动画之圆形进度条

    微信小程序动画之圆形进度条

     上图:

    js:

    //获取应用实例
    var app = getApp()
    
    var interval;
    var varName;
    var ctx = wx.createCanvasContext('canvasArcCir');
    
    Page({
      data: {
      },
      drawCircle: function () {
        clearInterval(varName);
        function drawArc(s, e) {
          ctx.setFillStyle('white');
          ctx.clearRect(0, 0, 200, 200);
          ctx.draw();
          var x = 100, y = 100, radius = 96;
          ctx.setLineWidth(7);
          ctx.setStrokeStyle('#BFEFFF');
          ctx.setLineCap('round');
          ctx.beginPath();
          ctx.arc(x, y, radius, s, e, false);
          ctx.stroke()
          ctx.draw()
        }
        var step = 1, startAngle = 1.5 * Math.PI, endAngle = 0;
        var animation_interval = 1000, n = 60;
        var animation = function () {
          if (step <= n) {
            endAngle = step * 8 * Math.PI / n + 1.5 * Math.PI;
            drawArc(startAngle, endAngle);
            step++;
          } else {
            clearInterval(varName);
          }
        };
        varName = setInterval(animation, animation_interval);
      },
      onReady: function () {
        //创建并返回绘图上下文context对象。
        var cxt_arc = wx.createCanvasContext('canvasCircle');
        cxt_arc.setLineWidth(8);
        cxt_arc.setStrokeStyle('#EDEDED');
        cxt_arc.setLineCap('round');
        cxt_arc.beginPath();
        cxt_arc.arc(100, 100, 96, 0, 2 * Math.PI, false);
        cxt_arc.stroke();
        cxt_arc.draw();
      },
      onLoad: function (options) {
    
      }
    })

    wxml:

    <view class="wrap">
      <view class="circle-box">
        <canvas class="circle" style="200px; height:200px;" canvas-id="canvasArcCir">
        </canvas>
        <canvas class="circle" style="z-index: -5; 200px; height:200px;" canvas-id="canvasCircle">
        </canvas>
        <view class="draw_btn" bindtap="drawCircle">点击开始</view>
      </view>
    </view>

    wxss:

    page {
      width: 100%;
      height: 100%;
      background-color: #fff;
    }
    
    .circle-box {
      text-align: center;
      margin-top: 10vw;
    }
    
    .circle {
      position: absolute;
      left: 0;
      right: 0;
      margin: auto;
    }
    
    .draw_btn {
      width: 28vw;
      position: absolute;
      top: 31vw;
      right: 0;
      left: 0;
      margin: auto;
      border: 1px #0D0D0D solid;
       background-color: #BFEFFF;
      border-radius: 5vw;
    }
  • 相关阅读:
    Mac 删除Openfire
    FMDB使用
    豆瓣restful api 状态和错误码
    豆瓣开放api
    常用文字配色方案
    电商网站参考
    HP后端跨域HEADER头
    PHP统计 图表实现方法
    PHP 全过程教程和测试网
    Ajax技术在购物车中的应用(PHP篇)
  • 原文地址:https://www.cnblogs.com/CodeHunter-qcy/p/11255324.html
Copyright © 2011-2022 走看看