微信小程序环形进度条如何改写为长尾词?

2026-04-02 22:321阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1154个文字,预计阅读时间需要5分钟。

微信小程序环形进度条如何改写为长尾词?

本文分享了一个微信小程序实现圆形进度条的代码示例。以下是大致步骤和代码:

步骤概述

1.创建微信小程序项目。

2.在`index.wxss`中定义圆形进度条的样式。

3.在`index.wxml`中使用`canvas`绘制圆形进度条。

代码示例

微信小程序环形进度条如何改写为长尾词?

index.wxss

css.circle { position: absolute; left: 0; right: 0; margin: auto;}

index.wxmlxml

实现逻辑(伪代码)javascript// 在Page的onReady生命周期中调用wx.createCanvasContext('circleCanvas', this).drawCircle({ x: 50, // 圆心x坐标 y: 50, // 圆心y坐标 radius: 50, // 半径 startAngle: 0, // 起始角度 endAngle: 2 * Math.PI, // 结束角度 strokeStyle: '#ff0000', // 线条颜色 strokeWidth: 10 // 线条宽度});

// 根据进度更新圆形进度条function updateProgress(progress) { const context=wx.createCanvasContext('circleCanvas', this); context.clearRect(0, 0, 100, 100); // 清除画布 context.drawCircle({ x: 50, y: 50, radius: 50, startAngle: 0, endAngle: 2 * Math.PI * progress, // 根据进度计算结束角度 strokeStyle: '#ff0000', strokeWidth: 10 }); context.draw(); // 绘制}

使用示例javascript// 假设进度值从0逐渐增加到1let progress=0;let step=0.1;setInterval(()=> { progress +=step; if (progress > 1) { progress=1; clearInterval(interval); } updateProgress(progress);}, 100);

以上代码实现了基本的圆形进度条功能。可以根据实际需求调整样式和逻辑。

本文实例为大家分享了微信小程序实现环形进度条的具体代码,供大家参考,具体内容如下

index.wxss

.circle {   position: absolute;   left: 0;   right: 0;   margin: auto; }

index.wxml

<canvas class="circle" style="z-index: 1;" canvas-id="canvasArcCir"></canvas> <canvas class="circle" style="z-index: 0;" canvas-id="canvasCircle"></canvas>

index.js

var interval; var varName; var ctx = wx.createCanvasContext('canvasArcCir'); Page({   /**    * 页面的初始数据    */   data: {     pitch: 0,     titleName: "答题结果",     btn_color: "",     text: 0,     accuracy: {},   },   /**    * 生命周期函数--监听页面加载    */   onLoad: function (options) {     if (options.correctAndError != null) {       var accuracyTemp = JSON.parse(options.correctAndError);       accuracyTemp.time = (accuracyTemp.time / 2).toFixed(1);     } else {       var accuracyTemp = {         questionNumber: 10,         correctNumber: 7,         time: 50       }     }     var bgColorTemp = "";     var bColorTemp = "";     if ((accuracyTemp.correctNumber / accuracyTemp.questionNumber) < 0.6) {       bgColorTemp = "linear-gradient(180deg,rgba(255,90,84,1) 0%,rgba(255,152,109,1) 100%)";       bColorTemp = "#FF5C54"     } else if ((accuracyTemp.correctNumber / accuracyTemp.questionNumber) < 0.8) {       bgColorTemp = "linear-gradient(180deg,rgba(250,182,25,1) 0%,rgba(249,206,69,1) 100%)";       bColorTemp = "#FBC932";     } else {       bgColorTemp = "linear-gradient(180deg,rgba(53,168,203,1) 0%,rgba(80,205,219,1) 100%)";       bColorTemp = "#36A9CB";     }     //练习结果-差     this.setData({       bgColor: bgColorTemp,       btBgColor: bgColorTemp,       tColor: bColorTemp,       bdColor: bColorTemp,       accuracy: accuracyTemp     });   },   /**    * 生命周期函数--监听页面初次渲染完成    */   onReady: function () {     var that = this;     setTimeout(function () {       //创建并返回绘图上下文context对象。       //灰色圆环       var cxt_arc = wx.createCanvasContext('canvasCircle');       cxt_arc.setLineWidth(15);       cxt_arc.setStrokeStyle('#eaeaea');       cxt_arc.setLineCap('round');       cxt_arc.beginPath();       cxt_arc.arc(130, 130, 94, 2.5, 2.2 * Math.PI, false);       cxt_arc.stroke();                     //没有运动的白点       cxt_arc.beginPath();       cxt_arc.setStrokeStyle('#fff');       cxt_arc.setLineCap('round');       cxt_arc.setLineWidth(5);       cxt_arc.arc(55, 185, 1, 0, 2 * Math.PI, false);       cxt_arc.stroke();                     //虚线中的圆环       var waste_pce = 20;       cxt_arc.setLineWidth(18);       cxt_arc.setStrokeStyle(that.data.tColor);       cxt_arc.setLineCap('square')       cxt_arc.beginPath(); //开始一个新的路径       cxt_arc.arc(130, 130, 60, 2.5, 2.2 * Math.PI, false); //设置一个原点(106,106),半径为100的圆的路径到当前路径       cxt_arc.stroke(); //对当前路径进行描边                     //画50条放射白线实现虚线效果       cxt_arc.setLineWidth(3);       cxt_arc.setStrokeStyle('#fff');       cxt_arc.setLineCap('square');       cxt_arc.beginPath(); //开始一个新的路径       for (var i = 0; i < 50; i++) {         var x = Math.PI * 2 / 50 * i;         cxt_arc.moveTo(130, 130);         cxt_arc.lineTo((130 + Math.sin(x) * 70), (130 + Math.cos(x) * 70));         cxt_arc.stroke();       }       var accuracyTemp = (that.data.accuracy.correctNumber / that.data.accuracy.questionNumber)       that.drawCircle(accuracyTemp, that.data.tColor);              //设置中间字的坐标       var x = 130,         y = 130;       if (accuracyTemp == 1) {         x = 125;         y = 158;       } else if (accuracyTemp == 0) {         x = 126;         y = 140;       } else {         x = 126;         y = 150;       }              //中间字 数字       cxt_arc.beginPath();       cxt_arc.setFontSize(30);       cxt_arc.setFillStyle(that.data.tColor);       cxt_arc.textAlign = 'center';       cxt_arc.fillText(accuracyTemp * 100, x, 135);       cxt_arc.stroke();              //中间字 %       cxt_arc.beginPath();       cxt_arc.setFontSize(10);       cxt_arc.fillText("%", y, 135);       cxt_arc.textAlign = 'center';       cxt_arc.stroke();              //中间字 正确率       cxt_arc.beginPath();       cxt_arc.setFontSize(10);       cxt_arc.setFillStyle("#999999");       cxt_arc.textAlign = 'center';       cxt_arc.fillText("正确率", 130, 155);       cxt_arc.stroke();       cxt_arc.draw();     }, 500);   },   /**    * 自定义函数    */   drawCircle: function (name, color) {     this.setData({       btn_color: color,       text: name * 100     })     clearInterval(varName);     function drawArc(s, e, x9, y9) {       //运动环       ctx.setFillStyle('white');       ctx.clearRect(0, 0, 200, 200);       ctx.draw();       var x = 130,         y = 130,         radius = 94;       ctx.setLineWidth(15);       ctx.setStrokeStyle(color);       ctx.setLineCap('round');       ctx.beginPath();       ctx.arc(x, y, radius, s, e, false);       ctx.stroke()              //运动白点       ctx.beginPath();       ctx.setStrokeStyle('#fff');       ctx.setLineCap('round');       ctx.setLineWidth(5);       ctx.arc(x9, y9, 1, 0, 2 * Math.PI, false);       ctx.stroke();       ctx.draw()     }     var step = 0,       startAngle = 0.8 * Math.PI,//开始弧度       endAngle = 0;     var animation_interval = 0,       n = 600;     var animation = function () {       if (step <= n) {         endAngle = name * (step * 1.4 * Math.PI / n) + 0.8 * Math.PI;//结束弧度         var L = (1.2*Math.PI + endAngle )*94;//弧长         var x = (54 - 130) * Math.cos(L / 94) - (185 - 130) * Math.sin(L / 94) + 130; //x坐标         var y = (54 - 130) * Math.sin(L / 94) + (185 - 130) * Math.cos(L / 94) + 130; //y坐标         drawArc(startAngle, endAngle, x, y);         step++;       } else {         clearInterval(varName);       }     };     varName = setInterval(animation, animation_interval);   }, })

效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

本文共计1154个文字,预计阅读时间需要5分钟。

微信小程序环形进度条如何改写为长尾词?

本文分享了一个微信小程序实现圆形进度条的代码示例。以下是大致步骤和代码:

步骤概述

1.创建微信小程序项目。

2.在`index.wxss`中定义圆形进度条的样式。

3.在`index.wxml`中使用`canvas`绘制圆形进度条。

代码示例

微信小程序环形进度条如何改写为长尾词?

index.wxss

css.circle { position: absolute; left: 0; right: 0; margin: auto;}

index.wxmlxml

实现逻辑(伪代码)javascript// 在Page的onReady生命周期中调用wx.createCanvasContext('circleCanvas', this).drawCircle({ x: 50, // 圆心x坐标 y: 50, // 圆心y坐标 radius: 50, // 半径 startAngle: 0, // 起始角度 endAngle: 2 * Math.PI, // 结束角度 strokeStyle: '#ff0000', // 线条颜色 strokeWidth: 10 // 线条宽度});

// 根据进度更新圆形进度条function updateProgress(progress) { const context=wx.createCanvasContext('circleCanvas', this); context.clearRect(0, 0, 100, 100); // 清除画布 context.drawCircle({ x: 50, y: 50, radius: 50, startAngle: 0, endAngle: 2 * Math.PI * progress, // 根据进度计算结束角度 strokeStyle: '#ff0000', strokeWidth: 10 }); context.draw(); // 绘制}

使用示例javascript// 假设进度值从0逐渐增加到1let progress=0;let step=0.1;setInterval(()=> { progress +=step; if (progress > 1) { progress=1; clearInterval(interval); } updateProgress(progress);}, 100);

以上代码实现了基本的圆形进度条功能。可以根据实际需求调整样式和逻辑。

本文实例为大家分享了微信小程序实现环形进度条的具体代码,供大家参考,具体内容如下

index.wxss

.circle {   position: absolute;   left: 0;   right: 0;   margin: auto; }

index.wxml

<canvas class="circle" style="z-index: 1;" canvas-id="canvasArcCir"></canvas> <canvas class="circle" style="z-index: 0;" canvas-id="canvasCircle"></canvas>

index.js

var interval; var varName; var ctx = wx.createCanvasContext('canvasArcCir'); Page({   /**    * 页面的初始数据    */   data: {     pitch: 0,     titleName: "答题结果",     btn_color: "",     text: 0,     accuracy: {},   },   /**    * 生命周期函数--监听页面加载    */   onLoad: function (options) {     if (options.correctAndError != null) {       var accuracyTemp = JSON.parse(options.correctAndError);       accuracyTemp.time = (accuracyTemp.time / 2).toFixed(1);     } else {       var accuracyTemp = {         questionNumber: 10,         correctNumber: 7,         time: 50       }     }     var bgColorTemp = "";     var bColorTemp = "";     if ((accuracyTemp.correctNumber / accuracyTemp.questionNumber) < 0.6) {       bgColorTemp = "linear-gradient(180deg,rgba(255,90,84,1) 0%,rgba(255,152,109,1) 100%)";       bColorTemp = "#FF5C54"     } else if ((accuracyTemp.correctNumber / accuracyTemp.questionNumber) < 0.8) {       bgColorTemp = "linear-gradient(180deg,rgba(250,182,25,1) 0%,rgba(249,206,69,1) 100%)";       bColorTemp = "#FBC932";     } else {       bgColorTemp = "linear-gradient(180deg,rgba(53,168,203,1) 0%,rgba(80,205,219,1) 100%)";       bColorTemp = "#36A9CB";     }     //练习结果-差     this.setData({       bgColor: bgColorTemp,       btBgColor: bgColorTemp,       tColor: bColorTemp,       bdColor: bColorTemp,       accuracy: accuracyTemp     });   },   /**    * 生命周期函数--监听页面初次渲染完成    */   onReady: function () {     var that = this;     setTimeout(function () {       //创建并返回绘图上下文context对象。       //灰色圆环       var cxt_arc = wx.createCanvasContext('canvasCircle');       cxt_arc.setLineWidth(15);       cxt_arc.setStrokeStyle('#eaeaea');       cxt_arc.setLineCap('round');       cxt_arc.beginPath();       cxt_arc.arc(130, 130, 94, 2.5, 2.2 * Math.PI, false);       cxt_arc.stroke();                     //没有运动的白点       cxt_arc.beginPath();       cxt_arc.setStrokeStyle('#fff');       cxt_arc.setLineCap('round');       cxt_arc.setLineWidth(5);       cxt_arc.arc(55, 185, 1, 0, 2 * Math.PI, false);       cxt_arc.stroke();                     //虚线中的圆环       var waste_pce = 20;       cxt_arc.setLineWidth(18);       cxt_arc.setStrokeStyle(that.data.tColor);       cxt_arc.setLineCap('square')       cxt_arc.beginPath(); //开始一个新的路径       cxt_arc.arc(130, 130, 60, 2.5, 2.2 * Math.PI, false); //设置一个原点(106,106),半径为100的圆的路径到当前路径       cxt_arc.stroke(); //对当前路径进行描边                     //画50条放射白线实现虚线效果       cxt_arc.setLineWidth(3);       cxt_arc.setStrokeStyle('#fff');       cxt_arc.setLineCap('square');       cxt_arc.beginPath(); //开始一个新的路径       for (var i = 0; i < 50; i++) {         var x = Math.PI * 2 / 50 * i;         cxt_arc.moveTo(130, 130);         cxt_arc.lineTo((130 + Math.sin(x) * 70), (130 + Math.cos(x) * 70));         cxt_arc.stroke();       }       var accuracyTemp = (that.data.accuracy.correctNumber / that.data.accuracy.questionNumber)       that.drawCircle(accuracyTemp, that.data.tColor);              //设置中间字的坐标       var x = 130,         y = 130;       if (accuracyTemp == 1) {         x = 125;         y = 158;       } else if (accuracyTemp == 0) {         x = 126;         y = 140;       } else {         x = 126;         y = 150;       }              //中间字 数字       cxt_arc.beginPath();       cxt_arc.setFontSize(30);       cxt_arc.setFillStyle(that.data.tColor);       cxt_arc.textAlign = 'center';       cxt_arc.fillText(accuracyTemp * 100, x, 135);       cxt_arc.stroke();              //中间字 %       cxt_arc.beginPath();       cxt_arc.setFontSize(10);       cxt_arc.fillText("%", y, 135);       cxt_arc.textAlign = 'center';       cxt_arc.stroke();              //中间字 正确率       cxt_arc.beginPath();       cxt_arc.setFontSize(10);       cxt_arc.setFillStyle("#999999");       cxt_arc.textAlign = 'center';       cxt_arc.fillText("正确率", 130, 155);       cxt_arc.stroke();       cxt_arc.draw();     }, 500);   },   /**    * 自定义函数    */   drawCircle: function (name, color) {     this.setData({       btn_color: color,       text: name * 100     })     clearInterval(varName);     function drawArc(s, e, x9, y9) {       //运动环       ctx.setFillStyle('white');       ctx.clearRect(0, 0, 200, 200);       ctx.draw();       var x = 130,         y = 130,         radius = 94;       ctx.setLineWidth(15);       ctx.setStrokeStyle(color);       ctx.setLineCap('round');       ctx.beginPath();       ctx.arc(x, y, radius, s, e, false);       ctx.stroke()              //运动白点       ctx.beginPath();       ctx.setStrokeStyle('#fff');       ctx.setLineCap('round');       ctx.setLineWidth(5);       ctx.arc(x9, y9, 1, 0, 2 * Math.PI, false);       ctx.stroke();       ctx.draw()     }     var step = 0,       startAngle = 0.8 * Math.PI,//开始弧度       endAngle = 0;     var animation_interval = 0,       n = 600;     var animation = function () {       if (step <= n) {         endAngle = name * (step * 1.4 * Math.PI / n) + 0.8 * Math.PI;//结束弧度         var L = (1.2*Math.PI + endAngle )*94;//弧长         var x = (54 - 130) * Math.cos(L / 94) - (185 - 130) * Math.sin(L / 94) + 130; //x坐标         var y = (54 - 130) * Math.sin(L / 94) + (185 - 130) * Math.cos(L / 94) + 130; //y坐标         drawArc(startAngle, endAngle, x, y);         step++;       } else {         clearInterval(varName);       }     };     varName = setInterval(animation, animation_interval);   }, })

效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。