
var initNum = 7; //倒计时数 var spaceNum = 1000; //文字倒计时间隔 var space =1000; //环倒计时间隔
绘制Canvas:
begin: - (1 / 2 * Math.PI), pAI2: 2 * Math.PI, //canvas画圆环 drawRang: function (PRecent) { var windowwidth = wx.getSystemInfoSync().windowWidth; var poaitionX = wx.getSystemInfoSync().windowWidth/2; var cxt_arc = this.cxt_arc; cxt_arc.setLineWidth(10); cxt_arc.setStrokeStyle('#ffffff'); cxt_arc.setLineCap('round') cxt_arc.beginPath();//开始一个新的路径 cxt_arc.arc(poaitionX, 30, 24, 0, this.pai2, false);//设置一个原点(106,106),半径为100的圆的路径到当前路径 cxt_arc.stroke();//对当前路径进行描边 var end = this.pai2 * precent +this.begin ; if (precent==0){ end = this.pai2 * + this.begin } else if (1 == precent){ cxt_arc.setFillStyle('white'); cxt_arc.setfontsize(25); cxt_arc.filltext(this.data.countdownNum, poaitionX - 7, 40); cxt_arc.draw(); return ; } cxt_arc.setLineWidth(6); cxt_arc.setStrokeStyle('#F15A47'); cxt_arc.setLineCap('round') cxt_arc.beginPath();//开始一个新的路径 cxt_arc.arc(poaitionX, 30, 24, this.begin, end , true); cxt_arc.stroke();//对当前路径进行描边 cxt_arc.setFillStyle('white'); cxt_arc.setfontSize(25); cxt_arc.fillText(this.DAta.countdownNum, poaitionX-7, 40); cxt_arc.draw(); },
然后传入js
countdown: function () {
var that = this;
that.rangRun = 0;
clearinterval(that.cuntDownCir);
that.cuntDownCir = SetInterval(function () {
var n=initNum - Math.floor(that.rangRun / spaceNum);
var precent = that.rangRun / (initNum * spaceNum);
that.setData({
countdownNum: n
});
that.drawRang(precent);
that.rangRun = that.rangRun + space;
if (precent >= 1) {
that.data.allowDo=false;
clearinterval(that.cuntDownCir);
}
}, space);
},OK,大家可以去试一试。








网友评论文明上网理性发言 已有0人参与
发表评论: