h5圆形进度条


组件封装文件 circlebar.js   代码如下:

(function() {
var context, centerX, centerY;
var rad = Math.PI * 2 / 100; //将360度分成100份,每份为rad度
var radius = 25; //默认半径
var lineWidth = 5; //默认线宽
var speed = 0; //默认初始加载值
var value = 0;


//绘制有值的颜色圈环
function valueCircle(n) {
context.save();
context.strokeStyle = "#19AC55"; //设置描边样式
context.lineWidth = lineWidth; //设置线宽
context.beginPath(); //路径开始
context.arc(centerX, centerY, radius, -Math.PI / 2, -Math.PI / 2 + n * rad, false); //用于绘制圆弧context.arc(x坐标,y坐标,半径,起始角度,终止角度,顺时针/逆时针)
context.stroke(); //绘制
context.closePath(); //路径结束
context.restore();
}
//绘制背景圆环圈
function bgCircle() {
context.save();
context.beginPath();
context.lineWidth = lineWidth; //设置线宽
context.strokeStyle = "#ECEAE9";
context.arc(centerX, centerY, radius, 0, Math.PI * 2, false);
context.stroke();
context.closePath();
context.restore();
}
//百分比文字绘制
function text(n) {
context.save(); //save和restore可以保证样式属性只运用于该段canvas元素
context.strokeStyle = "#ECEAE9"; //设置描边样式
context.font = "bold 17px Arial"; //设置字体大小和字体
//绘制字体,并且指定位置
context.fillStyle = "#19AC55";
context.fillText(n.toFixed(0) + "%", centerX - 18, centerY + 5);
context.stroke(); //执行绘制
context.restore();
}


var circlebar = function(id, v, radi, lWidth) {


var canvas = document.getElementById(id); //获取canvas元素
centerX = canvas.width / 2; //Canvas中心点x轴坐标
centerY = canvas.height / 2; //Canvas中心点y轴坐标


if(v) {
value = v;
}
if(radi) {
radius = radi;
}
if(lWidth) {
lineWidth = lWidth;
}


context = canvas.getContext('2d'); //获取画图环境,指明为2d
//动画循环
(function drawFrame() {
if(speed < value) {
window.requestAnimationFrame(drawFrame);
}
context.clearRect(0, 0, canvas.width, canvas.height);
bgCircle();


text(speed);
valueCircle(speed);
//if(speed > 100) speed = 0;
speed += 1;
}());
}
window.circlebar = circlebar;
})();


使用方法:

1.在对应html引入circlebar.js文件;

2.在对应div添加  如:

<div>
<canvas id="canvas" width="260px" height="260px"></canvas>
</div>

注意: canvas的width和height属性值不得小于直径和条形宽度之和。

3.在<script> 里面 添加 new circlebar("canvas",70);  //此处设置的进度值为70,半径和条形宽度为默认值,分别为25 、5.




在HTML5中,实现页面加载进度条通常通过JavaScript配合CSS来完成。以下是一个简单的步骤说明: 1. **HTML结构**: 创建一个`<div>`元素作为进度条容器,通常会包含两个部分:显示当前进度的部分(通常是宽度)和文字描述(如百分比或进度条长度)。 ```html <div id="progress-bar"> <span id="progress"></span> <span id="percentage">0%</span> </div> ``` 2. **CSS样式**: 配置进度条的样式,包括背景颜色、填充颜色和宽度等,使其看起来像一个渐变的条形。 ```css #progress-bar { width: 100%; height: 2px; background-color: #ccc; /* 进度条背景 */ position: relative; } #progress { height: 100%; background-color: #4caf50; /* 完成部分的颜色 */ transition: width 0.5s ease-in-out; } ``` 3. **JavaScript事件监听**: 使用`window.addEventListener('load', function()`,当页面加载完成后,更新进度条的宽度表示加载完成度。如果需要实时更新,可以监听`XMLHttpRequest`或`fetch`请求的状态变化。 ```javascript document.getElementById('progress').style.width = '0%'; // 初始宽度设为0 window.addEventListener('load', function() { var progressPercentage = 100 * (document.body.scrollHeight - document.documentElement.clientHeight) / document.body.scrollHeight; document.getElementById('progress').style.width = `${progressPercentage}%`; document.getElementById('percentage').innerText = `${Math.round(progressPercentage)}%`; }); ``` 这只是一个基础的示例,实际应用中可能还需要处理错误状态、异步加载等情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值