canvas圆形进度条(逆时针)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>circle</title>
</head>
<body>
<canvas id='myCanvas' width="292" height="292"></canvas> <script>
// 绘制圆
function drawCircleFn(totalReward) {
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.lineWidth = 24;
ctx.lineCap = 'round';
if(totalReward){
ctx.strokeStyle = '#0FCC9E';
circleAnimateFn(ctx);
}else{
ctx.strokeStyle = '#f2f2f2';
circleNoAnimateFn(ctx);
}
} // 绘制灰色圆
function circleNoAnimateFn(ctx) {
let startAngle = 3 / 2 * Math.PI; //开始位置弧度
let percentage = 10;
let diffAngle = percentage / 100 * Math.PI * 2; //完成进度弧度值
ctx.beginPath();
ctx.arc(146, 146, 132, startAngle, diffAngle + startAngle, true);
ctx.stroke();
} // 绘制动画圆
function circleAnimateFn(ctx) {
let startAngle = 3 / 2 * Math.PI; //开始位置弧度
let percentage = 100; //完成进度值 100 - 10
let endcentage = 10;
let diffAngle = percentage / 100 * Math.PI * 2; //完成进度弧度值
let intervalFn = setInterval(function(){
if(percentage <= endcentage){
clearInterval(intervalFn);
percentage = endcentage;
}else{
percentage = percentage - 5;
diffAngle = percentage / 100 * Math.PI * 2;
ctx.beginPath();
ctx.arc(146, 146, 132, startAngle, diffAngle + startAngle, true);
ctx.stroke();
}
}, 15)
} drawCircleFn();
</script>
</body>
</html>
canvas圆形进度条(逆时针)的更多相关文章
- canvas圆形进度条
通过定义一个canvas标签, new方法传进ID值,和旋转角度值,即可生成圆形进度条 <!DOCTYPE html> <html lang="en"> & ...
- HTML5效果:Canvas 实现圆形进度条并显示数字百分比
实现效果 1.首先创建html代码 <canvas id="canvas" width="500" height="500" styl ...
- canvas 绘制圆形进度条
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- canvas绘制圆形进度条(或显示当前已浏览网页百分比)
使用canvas绘制圆形进度条,或者是网页加载进度条 或者是显示你浏览了本网页多少-- 由于个浏览器的计算差异,打开浏览器时 初始值有所不同,但是当拉倒网页底部时,均显示100%. 兼容性:测试浏览器 ...
- css and canvas实现圆形进度条
进度条效果: 话不多说,上代码 使用css动画实现,看到一篇博客的启发,稍微修改了下, css实现的原理是用两个半圆一开始隐藏,再分别旋转180度,最后成为一个整圆 半圆效果,一开始右边的半圆在盒 ...
- Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
Android 高手进阶(21) 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请注明地址:http://blog.csdn.net/xiaanming/article/detail ...
- Android 带进度的圆形进度条
最近项目有个需求,做带进度从下到上的圆形进度条. 网上查了一下资料,发现这篇博客写得不错http://blog.csdn.net/xiaanming/article/details/10298163 ...
- 自定义VIew——漂亮的圆形进度条
package com.example.firstapp; import java.text.DecimalFormat; import android.annotation.SuppressLint ...
- Android 高手进阶,自己定义圆形进度条
背景介绍 在Android 开发中,我们常常遇到各种各样绚丽的控件,所以,依靠我们Android本身所带的控件是远远不够的,许多时候须要我们自定义控件,在开发的过程中.我们公司遇到了一种须要自己写的一 ...
随机推荐
- 微信小程序 与后台交互----传递和回传时间
wxml代码 <!--index.wxml--> <view class="container"> <view class="section ...
- python虚拟环境的配置: virtualenv 和 virtualenvwrapper-win 的用法
版本:python37, virtualenv==16.7.8, virtualenvwrapper-win==1.2.5 pip37 install virtualenv 安装支持虚拟环境的包,注意 ...
- linux maven环境变量配置
export MAVEN_HOME=/opt/hjyang/soft/maven export MAVEN_HOME export PATH=$PATH:$MAVEN_HOME/bin
- python线程池ThreadPoolExecutor(上)(38)
在前面的文章中我们已经介绍了很多关于python线程相关的知识点,比如 线程互斥锁Lock / 线程事件Event / 线程条件变量Condition 等等,而今天给大家讲解的是 线程池ThreadP ...
- 关于Hive中的join和left join的理解
一.join与left join的全称 JOIN是INNER JOIN的简写,LEFT JOIN是LEFT OUTER JOIN的简写. 二.join与left join的应用场景 JOIN一般用于A ...
- [WCF] - 访问任意方法耗时长问题之解决
问题 访问 WCF 任意方法耗时都很长(15s+) 原因 当执行语句 log4net.Config.XmlConfigurator.Configure(); 时需要连接到 log4net 对应的数据库 ...
- 记一次EFCore类型转换错误及解决方案
一 背景 今天在使用EntityFrameworkCore 查询的时候在调试的时候总是提示如下错误:Unable to cast object of type 'System.Data.SqlTyp ...
- Zuul【入门】
1.创建eureka-server注册中心工程,配置跟之前讲eureka文章中一样,这里不再赘述 1.1.端口8888 2.创建一个demo-client工程 2.1.demo-client启动类跟之 ...
- Windows环境下Python3安装Pyspider
执行命令: pip3 install pyspider Windows 下可能会出现这样的错误提示:Command "python setup.py egg_info" fai ...
- PAT(B) 1077 互评成绩计算(Java)
题目链接:1077 互评成绩计算 (20 point(s)) 题目描述 在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这 ...