Javascript 平衡天平

Javascript 平衡天平,javascript,dom,graphics,pixels,Javascript,Dom,Graphics,Pixels,嘿,伙计们,我有一个公式,即cals\u in和cals\u out的百分比(总共200%) 我创建了一个刻度,以百分比表示数值的差异。问题是我想转换像素高度的差异来上下移动比例 function setScalesToValue(fValue) { document.getElementById("cals_in").style.bottom = (183 + fValue) + "px"; document.getElementById("cals_out").style.bo

嘿,伙计们,我有一个公式,即cals\u in和cals\u out的百分比(总共200%)

我创建了一个刻度,以百分比表示数值的差异。问题是我想转换像素高度的差异来上下移动比例

function setScalesToValue(fValue) {

   document.getElementById("cals_in").style.bottom = (183 + fValue) + "px";
   document.getElementById("cals_out").style.bottom = (183 -  fValue) + "px";

}
初始比例位置为183,然后添加或减去差值以显示比例上的投影。它工作得不太好,我正在寻求任何人的帮助,用回报率来移动天平

注意:fValue不能超过20px


任何指导都将不胜感激。

警告:我很累,这是非常未经测试的,我很少乱用javascript,所以我希望这是有意义的

关键是要确定一路推动刻度的最大差值。当你得到真正的差异时,你会看到你最大值的百分之几。然后你只需要得到20像素的百分比。当然,任何超过100%的图像都只需校正为100%,这样就不会超过20像素。(我希望此代码有效)

var差异; var最大期望值差异; var差异百分比; 风险价值; 差异百分比=差异/最大预期差异; 差异百分比=数学四舍五入(差异百分比*100)/100; 如果(差异百分比>1)差异百分比=1; 如果(差异百分比 如果这不清楚,您将在任何一种情况下添加到183px。如果差值为负数,则fValue应为负数

编辑:看起来我误解了你是如何实现这一点的,但基本的想法对你来说仍然很好。老实说,如果你的最大卡路里变化是200%,那么你的fValue的快捷方式是将你的百分比差异除以10,并对小数进行四舍五入。所以148%是15px,81%是8px,等等

var difference; var max_expected_difference; var diff_percent; var fValue; diff_percent = difference/max_expected_difference; diff_percent = Math.round(diff_percent*100)/100; if (diff_percent>1) diff_percent = 1; if (diff_percent