前端 圆形进度图_js圆形进度的实现,可以自定义进度图标
需求是下图这样,是一个环形进度条。最前面还有个自定义的图标。搜了很多各种环形进度,前面有自定义图标的不多,记录一下
html文件代码:
首页
重新开始
$(function () {
var run = runCircle( //初始化转圈
{
obj: 'canvasThree2',
percent: 1
}
);
var reTimer;
$(".restart").click(function () {
var run = $("#canvasThree2").attr("data-run");
if (run == 0) {
clearTimeout(reTimer)
reTimer = setTimeout(function () {
runCircle()
}, 200)
} else {
clearTimeout(reTimer)
return;
}
})
})
zcircleMove.js代码:
function runCircle(){
var settings = {
obj: 'canvasThree2',
percent: 1
}
var defaultSetting={
url:'images/fire1.png', //飞机小图地址
obj:'', //场景添加的canvas id 名
percent:1, //圆环转动的百分比 0-1
outerColor:'#61b2f0', //外部圆环 渐变色
};
var option=$.extend({},defaultSetting,settings);
var imageUrl=option.url;
var obj=option.obj;
var percent=option.percent;
var outerColor=option.outerColor;
var preA=Math.PI/180;
var canvasC=document.getElementById(obj);
/*控制运动*/
var context=canvasC.getContext('2d');
var windowW=parseInt($(canvasC).parent().width());//根据canvas父元素的宽度来设置圆圈的宽度
var lineW0=5;
var R0;
var canvasW=windowW*1.5;//控制圈圈的宽度
R0=parseInt(canvasW/2-lineW0-4);
var ra=parseInt(canvasW/2-lineW0/2-5);
var canvasH=canvasW;
var rotateAngle=percent*360;
var rotataRadians=preA*rotateAngle;
canvasC.width = canvasW;
canvasC.height = canvasH;
var x=canvasC.width/2;
var y=canvasC.height/2;
var startAa=-Math.PI/2;
var startA=0;
var Timer;
var imageAir=new Image();
imageAir.src=imageUrl;
imageAir.οnlοad=CanvasApp;
function CanvasApp(){
var imgWidth=option.imgWidth||imageAir.width/2;
var imgHeight=option.imgHeight||imageAir.height/2;
console.log(imgWidth)
var imgX=-imgWidth/2-2;
var imgY=-imgHeight/2;
function drawScreen(){
if(startA
startA+=0.1;
}
context.setTransform(1,0,0,1,0,0);
context.fillStyle="#ffffff";//背景颜色
context.fillRect(0,0,canvasC.width,canvasC.height);
context.translate(x,y);
context.rotate(-Math.PI/2);
//外环
context.beginPath();
//50,50,25,100,100,100
context.strokeStyle = outerColor;
context.lineWidth=lineW0;
context.arc(0,0,R0,0,startA,false);
context.stroke();
context.closePath();
//画图
if(startAa
startAa+=0.1;
canvasC.setAttribute("data-run","1")
}else{
clearInterval(Timer);
canvasC.setAttribute("data-run","0")
}
context.save();
context.setTransform(1,0,0,1,0,0);
var ax=ra*Math.cos(startAa) ;
var ay=ra*Math.sin(startAa) ;
context.translate(x+ax,y+ay);
context.rotate(startAa);
context.drawImage(imageAir,imgX,imgY,imgWidth,imgHeight)
context.restore();
}
drawScreen();
Timer=setInterval(drawScreen,10)//控制转圈速度的
}
}
fire1.png就是进度条最前面的蓝色发光小圆圈
github地址:https://github.com/phebe111/circleMove/tree/master
代码来自https://www.17sucai.com/pins/23189.html这篇文章,我又删删减减成我需要的代码,如果想要更多功能,比如环形颜色渐变等,可以看原文
前端 圆形进度图_js圆形进度的实现,可以自定义进度图标相关推荐
- 前端 圆形进度图_Highcharts 圆形进度条式测量图
Highcharts 圆形进度条式测量图 以下实例演示了圆形进度条式测量图. 我们在前面的章节已经了解了 Highcharts 基本配置语法.接下来让我们来看下其他的配置. 配置 chart.type ...
- QT自定义进度条-画圆盘
目录 QT自定义进度条-画圆盘 六等分圆盘 QT自定义进度条-画圆盘 六等分圆盘 void PaintWidget::paintEvent(QPaintEvent *e) {QPainter pain ...
- ucharts 圆形进度图使用
菜鸟成长之路 1.在官网上下载ucharts,引入至所需页面 参考文献:https://blog.csdn.net/m0_49529959/article/details/107770498?utm_ ...
- 圆形进度条(包括仿QQ图片加载进度图)
原文:圆形进度条(包括仿QQ图片加载进度图) 源代码下载地址:http://www.zuidaima.com/share/1581277496822784.htm 以前找到的自定义圆形进度条
- Vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果
vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果 需求分析: 类似于大多数音乐播放器中等mini播放器控制按钮,显示播放进度,实时更新进度. progress-cir ...
- Android 之 ProgressDialog用法介绍(矩形进度条 和 圆形 进度条)
2019独角兽企业重金招聘Python工程师标准>>> 布局文件: <LinearLayout xmlns:android="http://schemas.andro ...
- android自定义带进度条的圆形图片
前言:在项目听新闻的改版中需要实现环绕圆形新闻图片的进度条功能,作为技术预备工作我就去看了一些网上的相关的原理,做了一个自定义带进度条的圆形图片的demo,并将这个实现写成文章发布出来,谁需要了可以进 ...
- echarts 三环圆环_echarts实现环形进度图
//环形进度图 TgsChartsUtil.drawCircleLoadingChart = function(cfg){ var myChart = TgsChartsUtil.getChart(c ...
- Android圆形头像图Circle ImageView
<Android圆形头像图Circle ImageView> 需要处理的原始图(pic): 使用CircleImageView处理后的图(作为头像): 现在很多的应用都有设置头像的功能,如 ...
最新文章
- 搞了半天,终于弄懂了TCP Socket数据的接收和发送,太难~
- linux kernel中的wait_for_completion和complete总结
- PostgreSQL 压缩包 在win7上安装
- vue方法调用失败后多次调用_浅析Vue中 computed / watch / methods的区别
- java jstack 工具_java命令之jstack工具
- Django单元测试
- Android 8.0 的部分坑及对应解决方法
- mongodb的常用增删改查命令:
- CISSP 重点知识点总结3
- 字节跳动不需要总部大楼
- VS2010提示未能正确加载包
- EasyPusher手机直播推送是如何实现后台直播推送的
- 日知录(16):CAD基础工具
- 无线智能蓝牙追踪防丢器
- 服务器购买之后要做什么(二)
- 回顾 2022 年 — 回顾 Elastic 这一年
- Nutz cnd.wrap传参
- 超详细Shell学习教程第二篇
- Project 2013设置节假日日历
- 20190221 beautiful soup 入门