进度条-显示多段

这篇博客介绍了一种使用HTML和JavaScript创建多段进度条的方法。通过JavaScript动态计算并设置各进度条段的宽度,实现了根据百分比显示不同颜色的进度。同时,进度条旁的文本也相应更新,展示了每段的进度值。适用于前端开发中的动态进度反馈场景。
摘要由CSDN通过智能技术生成

多段进度条

样式
在这里插入图片描述

HTML

<div class="progress">
                        <div style="width:300px; height:20px;  background:#fff; border-radius:3px; float:left; font-size:12px;">
                        @*进度条柱*@
                            <div style="width: 100%; border: 1px solid #f7f6f6; height: 10px; border-radius: 5px; ">
                                <div style="float:left; height:10px; background:#ffa437; border-radius:3px;" id="txtprogressbarwidth">

                                </div>
                                <div style="float:left; height:10px;  background:#f4d467; border-radius:3px;" id="txtprogressbar2width">
                                </div>
                                <div style="float:left; height:10px; background:#96e6cc; border-radius:3px;" id="txtprogressbar3width">
                                </div>
                            </div>
                            @*进度条文本*@
                            <div style="width:100%; float:left;">
                                <div style="float:left;  line-height:30px; color:#ffa437; text-align:center;" id="txtprogressbar">
                                   

                                </div>
                                <div style="float:left; line-height:30px; color:#f4d467; text-align:center;" id="txtprogressbar1">
                                   
                                </div>
                                <div style="float:left;min-width:30px ; line-height:30px; color:#96e6cc; text-align:center;" id="txtprogressbar2">
                                  
                                </div>
                            </div>
                        </div>

                    </div>

JS

                var WindowWidth = 300;//设置进度条所占比例的长度
                var fist = (row.JGPercent / 100) * WindowWidth;//(row.JGPercent / 100) 是进度条所占的百分比,在*WindowWidth是这个百分比所展示的长度
                var sencond = (row.JGPercent2 / 100) * WindowWidth;//同上
                var third = (row.JGPercent3 / 100) * WindowWidth;//同上
                document.getElementById("txtprogressbarwidth").style.width = fist + "px";//进度条在div中显示相应的长度
                document.getElementById("txtprogressbar2width").style.width = sencond + "px";
                document.getElementById("txtprogressbar3width").style.width = third + "px";
                document.getElementById("txtprogressbar").style.width = fist + "px";//这是文本对应进度条的长度
                document.getElementById("txtprogressbar1").style.width = sencond + "px";
                document.getElementById("txtprogressbar2").style.width = third + "px";
                // var value = $('#txtprogressbar').progressbar('getValue');
                document.getElementById('txtprogressbar').innerHTML = row.JGPercent;//每段对应的进度条的字段
                document.getElementById('txtprogressbar1').innerHTML = row.JGPercent2;
                document.getElementById('txtprogressbar2').innerHTML = row.JGPercent3;
您好!对于echarts横向进度条一条多段的需求,可以通过使用echarts的自定义系列(custom series)来实现。下面是一个简单的示例代码: ```javascript // 初始化echarts实例 var myChart = echarts.init(document.getElementById('chart')); // 定义数据 var data = [ { name: '任务1', value: [30, 70] }, { name: '任务2', value: [40, 60] }, { name: '任务3', value: [50, 50] }, // ... ]; // 配置选项 var option = { tooltip: {}, xAxis: { type: 'value', max: 100, show: false }, yAxis: { type: 'category', data: data.map(item => item.name), axisTick: { show: false }, axisLine: { show: false }, axisLabel: { show: false } }, series: [{ type: 'custom', renderItem: function(params, api) { var yValue = api.value(2); var start = api.coord([api.value(0), yValue]); var end = api.coord([api.value(1), yValue]); var height = api.size([0, 1])[1] * 0.6; return { type: 'rect', shape: { x: start[0], y: start[1] - height / 2, width: end[0] - start[0], height: height }, style: api.style() }; }, dimensions: ['start', 'end', 'name'], data: data, z: 10 }] }; // 使用配置项显示图表 myChart.setOption(option); ``` 上述代码中,我们使用了echarts的custom series来自定义渲染进度条的形状。通过指定每个任务的起始值和结束值,以及任务名称,我们可以动态生成多段进度条。 您可以根据自己的需求修改数据和样来实现更复杂的效果。希望对您有帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值