javascript - Javascript进度条未显示正确的完成百分比
问题描述
在下面的代码中,我试图让进度条显示 100%,但它保持在 66%。这是一个包含三个问题的测验。在提交第三个问题后,第一个问题和第二个问题分别显示 33% 和 66% 时,它仍然显示 66%,但条形完全完成跨越条形的整个宽度。在此处完成 codepen 。. 第三个问题后如何显示100%?谢谢你。
进度条JS代码:
function move(i) {
console.log('i: ' + i);
var elem = document.getElementById("myBar");
switch(i) {
case 0:
elem.style.width = "33%";
elem.innerHTML = "33%";
break;
case 1:
elem.style.width = "66%";
elem.innerHTML = "66%";
break;
case 2:
elem.style.width = "100%";
elem.innerHTMl = "100%";
}
}
解决方案
我有一个更通用的方法来做到这一点,因为 myQuestions 变量可以有任何长度,所以使用 switch case 不适合这样做。
function move(slide, total) {
console.log('slide: ' + slide);
var elem = document.getElementById("myBar");
const percent = (slide + 1) / total * 100;
elem.style.width = `${percent}%`;
elem.innerHTML = percent != 100 ? `${percent.toPrecision(2)}` : "100%";
}
// From your code you can just call like this
move(currentSlide, myQuestions.length);
希望你觉得这很有帮助。
推荐阅读
- javascript - 检查版本是否优于另一个
- mysql - wso2是集群mysql的api管理器数据库配置
- shell - 通过 shell 运行 hive 命令得到错误
- swift - 稍后在 SwiftUI 中传递类型名称以进行初始化
- django - 如何从 DRF 中的视图集中对返回的列表进行分页?
- c# - 使用 NAudio 无法正确生成方波
- java - 我们如何在 Firebase 实时数据库中为每个用户设置规则读取由另一个用户添加但用户只能删除自己的数据的数据?
- ruby-on-rails - 如何在方法中调用变量?
- angular - 过滤数组并不断获取数据
- java - 在嵌套对象集合中搜索