svg 带渐变色的环形进度条

该博客内容涉及JavaScript动态生成SVG环形进度条并实现动画效果。通过循环遍历数据源,创建多个环形进度条,并利用定时器更新进度值,展示进度变化。代码中使用了线性渐变填充,以及stroke-dasharray属性来控制进度条的实线部分,实现了环形进度条从0%到100%的平滑过渡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var source = [{“name”:“环形进度条”,“width”:15},{“name”:“环形进度条”,“width”:25},{“name”:“环形进度条”,“width”:35}];
for (let i = 0; i < this.source.length; i++) {
htmlcode += <div class="svg-item" style="width: 300px;height: 160px;padding-bottom:20px;"> <svg width="300" height="160" viewBox="0 0 300 160" xmlns="http://www.w3.org/2000/svg"> <defs> <linearGradient id="orange_red" x1="0%" y1="0%" x2="100%" y2="100%"> <stop offset="0%" style="stop-color:rgb(80,52,168);stop-opacity:1"></stop> <stop offset="100%" style="stop-color:rgb(0,254,255);stop-opacity:1"></stop> </linearGradient> </defs> <circle cx="80" cy="80" r = "70" fill="none" stroke="#eee" stroke-width="4" transform="rotate(-90)"></circle> <circle cx="0" cy="0" r = "70" class="mycircle" id="progressRound" transform="translate(80,80)rotate(-90)"></circle> <text x="0" y="0" fill="white" class="txt" id="txt" transform="translate(170,25)">0</text> <text x="0" y="0" fill="white" transform="translate(40,84)">环形进度条</text> <polyline points="148,50 170,30 220,30" style="fill:none;stroke:#00feff;stroke-width:2;"> </svg> </div>
}

for (let j = 0; j < this.source.length; j++) {
let progressRound = $(".svg-item")[j];
let txt = $(".txt")[j]
// 进度数据,默认为 0
let jindu = 0;
// let roundLength = Math.PI2100;
let jinduLength = Math.PI20.7;
let goFun = ()=>{
jindu +=0.5 ;
let strokeLength = jinduLength*jindu ;
txt.innerHTML = jindu +"%";
// 更改环形样式,控制进度变化:实线段长度。
progressRound.style.strokeDasharray = strokeLength + " 1000";
// 如果进度为 100 ,那么终止计时器。
if(jindu===100){
clearInterval( myset );
}
};
// 启动计时器
let myset = setInterval(function(){
goFun();
},50);

乘号为什么不显示???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值