广告
返回顶部
首页 > 资讯 > 精选 >微信小程序怎么实现环形进度条
  • 338
分享到

微信小程序怎么实现环形进度条

2023-07-02 13:07:48 338人浏览 安东尼
摘要

本篇内容主要讲解“微信小程序怎么实现环形进度条”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序怎么实现环形进度条”吧!index.wxss.circle { &nbs

本篇内容主要讲解“微信小程序怎么实现环形进度条”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习微信小程序怎么实现环形进度条”吧!

index.wxss

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

index.wxml

<canvas class="circle"  canvas-id="canvasArcCir"></canvas><canvas class="circle"  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);  },})

效果

微信小程序怎么实现环形进度条

微信小程序怎么实现环形进度条

微信小程序怎么实现环形进度条

到此,相信大家对“微信小程序怎么实现环形进度条”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 微信小程序怎么实现环形进度条

本文链接: https://www.lsjlt.com/news/342347.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 微信小程序怎么实现环形进度条
    本篇内容主要讲解“微信小程序怎么实现环形进度条”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序怎么实现环形进度条”吧!index.wxss.circle { &nbs...
    99+
    2023-07-02
  • 微信小程序实现环形进度条
    本文实例为大家分享了微信小程序实现环形进度条的具体代码,供大家参考,具体内容如下 index.wxss .circle {   position: absolute;   left:...
    99+
    2022-11-13
  • 微信小程序进度条怎么实现
    这篇文章主要介绍“微信小程序进度条怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序进度条怎么实现”文章能帮助大家解决问题。progress进度条。属性名类型默认值说明percentF...
    99+
    2023-06-26
  • 微信小程序用canvas实现圆形进度条
    本文实例为大家分享了微信小程序用canvas实现圆形进度条的具体代码,供大家参考,具体内容如下 先放效果图,如下: 1. wxml文件代码如下 对于圆形进度条中间的文字,如果是简单...
    99+
    2022-11-13
  • 微信小程序中如何实现圆形进度条
    这篇文章主要为大家展示了“微信小程序中如何实现圆形进度条”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序中如何实现圆形进度条”这篇文章吧。需求概要小程序...
    99+
    2022-10-19
  • 微信小程序如何实现实时圆形进度条
    这篇文章主要为大家展示了“微信小程序如何实现实时圆形进度条”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序如何实现实时圆形进度条”这篇文章吧。效果图如下...
    99+
    2022-10-19
  • 微信小程序怎么实现圆心进度条
    这篇文章主要介绍“微信小程序怎么实现圆心进度条”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序怎么实现圆心进度条”文章能帮助大家解决问题。一、创建项目结构打开微信开发者工具创建一个项目, 新...
    99+
    2023-07-02
  • 微信小程序实现圆心进度条
    本文实例为大家分享了微信小程序实现圆心进度条的具体代码,供大家参考,具体内容如下 一、创建项目结构 打开微信开发者工具创建一个项目, 新建 与 pages 同级目录 componen...
    99+
    2022-11-13
  • 微信小程序怎样实现下载进度条
    这篇文章主要介绍了微信小程序怎样实现下载进度条,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。效果:progress进度条是微信小程序的组件,...
    99+
    2022-10-19
  • 微信小程序怎么实现带滑块的进度条
    今天小编给大家分享一下微信小程序怎么实现带滑块的进度条的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、效果图二、实现逻辑功...
    99+
    2023-07-02
  • 微信小程序实现带滑块的进度条
    微信小程序项目需求,要实现一个带滑块并可左右滑动的进度条,看了小程序的文档,发现上面的progress组件无法满足需求,所以我自己写了一个,在这里总结一下。 一、效果图 二、实现逻...
    99+
    2022-11-13
  • 微信小程序怎么使用slider实现音频进度条
    这篇文章主要介绍了微信小程序怎么使用slider实现音频进度条的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序怎么使用slider实现音频进度条文章都会有所收获,下面我们一起来看看吧。微信小程序的sli...
    99+
    2023-07-02
  • 微信小程序canvas实现环形渐变
    本文实例为大家分享了微信小程序canvas实现环形渐变的具体代码,供大家参考,具体内容如下 这个例子是在微信小程序中写的 效果图 后端返回的数据格式,需要的只有otherInfo里...
    99+
    2022-11-13
  • 微信小程序使用slider实现音频进度条
    众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所以就想到了用slider来实现音频的进度条显示及控制 微信小程序的slider组件...
    99+
    2022-11-13
  • css怎么实现环形循环进度条
    本教程操作环境:Windows10系统、CSS3版、DELL G3电脑css怎么实现环形循环进度条?CSS实现圆环进度条一、静态进度条首先,我们先看一个静态进度条第一步当然是先实现一个最外层的父级圆环。其次是通过 clip-path画出两个...
    99+
    2023-05-14
    进度条 css
  • 微信小程序怎么实现滚动条功能
    这篇文章主要讲解了“微信小程序怎么实现滚动条功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序怎么实现滚动条功能”吧!view<view class="c...
    99+
    2023-07-02
  • 小程序怎么实现流程进度条功能
    今天小编给大家分享一下小程序怎么实现流程进度条功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实现小程序流程进度条需求:没...
    99+
    2023-06-26
  • 微信小程序实现滚动条功能
    本文实例为大家分享了微信小程序实现滚动条的具体代码,供大家参考,具体内容如下 view <view class="conty">   <!-- 滚动字幕 --&g...
    99+
    2022-11-13
  • 微信小程序实现横向滚动条
    本文实例为大家分享了微信小程序横向滚动条的具体代码,供大家参考,具体内容如下 微信小程序scroll-view实现横向滑动滚动 效果图如下: 左右滑动效果展示如下: 实现代码: ...
    99+
    2022-11-13
  • JavaScript怎么实现可动的canvas环形进度条
    这篇文章主要介绍“JavaScript怎么实现可动的canvas环形进度条”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript怎么实现可动的canvas环形进度条”文章能帮助大家解决问...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作