我在JS中有这个进度条,我通过使用以下代码增加其宽度来填补进度:
function move(ValueSC) {
var elem = document.getElementById("scaleOrig");
var width = 0;
var internalVlue = ValueSC;
var id = setInterval(frame(internalVlue), 50);
function frame(internalVlue) {
if (width >= internalVlue) {
clearInterval(id);
} else {
width += internalVlue;
elem.style.width = width + '%';
}
}
}
这很有效,但问题是我会从我的计算器得到一个值(结果),这是15到40之间的值,所以这个陈述的15将是0%而40将是100%。如果结果(来自我的计算器)为40,我希望进度条的宽度达到100%,如果是15,则进度条的值应为0%。基本上我需要逻辑将所有25个数字从15转换为40,以使百分比值在0到100%之间。
答案 0 :(得分:1)
作为一个更广泛的答案,您正在寻找的公式是((value - min) / (max - min)) * 100
。 max
和min
是您的价值范围,value
是当前进度。这将返回到目前为止两个其他值之间任何给定值的进度百分比。
答案 1 :(得分:0)
android:id="@android:id/text1"
var percent = ((value - 15) / (40 - 15)) * 100
将为您40
而100
将为您提供15
答案 2 :(得分:-2)
在致电方法之前,请执行以下操作:
ValueSC= ((Max-Min)/100)*(Current-Min))
其中: 当前:你的价值 最小值=最小值 最大=最大值
答案 3 :(得分:-2)
首先,您必须将100分为更小的步骤。您的号码可以有25(40-15)个不同的值,因此步长的长度应该是100/25,并且您的起始数字是15.这样的东西应该有效:
function getPercentage(number) {
return (number - 15) * (100 / 25);
}