canvas圆形进度条
通过定义一个canvas标签, new方法传进ID值,和旋转角度值,即可生成圆形进度条
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>圆进度条</title>
</head>
<body>
<canvas id="yuan" width="200" height="200"></canvas>
</body>
<script src="jquery-1.11.1.min.js"></script>
<script type="text/javascript">
window.chart =function(ID){
var canvas = document.getElementById(ID);
var ctx = canvas.getContext("2d");
// 画布宽高
var W = canvas.width;
var H = canvas.height;
//度角
var degrees = 0;
var new_degrees = 0;
// 差额
var difference = 0;
var text,text_w; // 文字
var R =W < H ? W:H; //先默认环半径为canvas宽度
var outW =parseInt(R / 14); //环宽度
var outR = (R/2) -outW; //环半径=canvas宽度半径 -外环宽度
var $this = this;
console.log("canvas宽度:"+R);
console.log(outW);
console.log(outR); $this.ratePieNoAnimation = function (number){
degrees =360*number/100; // 园弧底图
ctx.clearRect(0,0,W,H);//先清画布
ctx.beginPath();
ctx.strokeStyle ="green";
// 园弧线的宽度
ctx.lineWidth = outW;
ctx.arc(W / 2, H / 2, outR, 0, Math.PI * 2, false);
ctx.stroke(); //圆弧动画
var r = degrees * Math.PI / 180;
ctx.beginPath();
ctx.strokeStyle = "#994746";
ctx.lineWidth = outW;
// 弧将从最顶端开始
ctx.arc(W / 2, H / 2, outR, 0 - 90 * Math.PI / 180, r - 90 * Math.PI / 180, false);
ctx.stroke(); // 文字添加
ctx.fillStyle = "#63d2ef";
ctx.shadowColor = "#eee";
ctx.font = "bold " + R / 6 + "px hanyi";
text = Math.floor(degrees / 360 * 100) + "%";
text_w = ctx.measureText(text).width;
ctx.fillText(text, W / 2 - text_w / 2, H / 2 + R / 10);
}; $this.ratePie = function(number){
var i=0;
var time=setInterval(function(){
if( i==number){
clearInterval(time);
}else{
number >0 ? i++ : i--;
}
$this.ratePieNoAnimation(i);
if( i>100 || i<-100){
$this.ratePieNoAnimation(number);
clearInterval(time);
}
}, 2000 / (number > 0 ? number : -number));
}; } new chart("yuan").ratePie(50);
</script>
</html>
canvas圆形进度条的更多相关文章
- canvas圆形进度条(逆时针)
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- 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本身所带的控件是远远不够的,许多时候须要我们自定义控件,在开发的过程中.我们公司遇到了一种须要自己写的一 ...
随机推荐
- Android SDK Manager无法显示可供下载的未安装SDK解决方案
FAQ: 问下的 我的ANDROID SDK MANAGER里原来下载了一些SDK,但是我现在想重新下载新的SDK,咋Packages列表没显示呢?该怎么办? Answer: 据说dl-ssl.goo ...
- CSS HACK 及常见问题
一.CSS常用hack 1.方式一:条件注释法 这种方式是IE浏览器专有的Hack方式,微软官方推荐使用的hack方式.举例如下 只在IE下生效 <!--[if IE]> 这段文字只在IE ...
- 使用windbg分析iis崩溃的一个实例
问题背景说明:客户的生产环境不定时发生崩溃,需要定位崩溃的原因.在开发环境不能重现该问题,准备抓取IIS的dump文件分析 第一步:在客户的生产环境抓取dump文件 参考:IIS崩溃时自动抓取Dump ...
- cron语法
最近在搞whenever时看到可以用cron语法设置定时任务.所以研究了下cron 语法. every '0 0 27-31 * *' do command "echo 'you can u ...
- hbase 使用
hbase shell命令的使用 再使用hbase 命令之前先检查一下hbase是否运行正常 hadoop@Master:/usr/hbase/bin$ jps HMaster NameNode Se ...
- iOS时间那点事儿–NSTimeZone
NSTimeZone **时区是一个地理名字,是为了克服各个地区或国家之间在使用时间上的混乱. 基本概念: GMT 0:00 格林威治标准时间; UTC +00:00 校准的全球时间; CCD +08 ...
- php和egret的配合
egret对资源路径和js的应用都是相对路径,而在现在许多流行的框架里,一般都把js和资源放到专门的文件夹下,如public. 修改步骤: 1.修改index.html,改为全路径,如: <sc ...
- facebook-开发
https://developers.facebook.com/docs/ios/getting-started?locale=zh_CN#prerequisites
- iOS 8 界面设计 PSD 模板(iPhone 6),免费下载
在 iOS 8 发布不久,Teehan & Lax 就发布了 iOS 8(iPhone6)用户界面的 PSD 模板.该网站分享众多 PSD 模板素材,这些精美的 PSD 界面模板在制作界面原型 ...
- MySQL中的账号与权限管理
MySQL权限管理 权限系统的工作原理 MySQL权限系统通过下面两个阶段进行认证: (1)对连接的用户进行身份认证,合法的用户通过认证.不合法的用户拒绝连接. (2)对通过认 ...