0

嘿伙计们,我有一个公式 cals_in 与 cals_out 的百分比(200%)

我创建了一个比例来显示百分比值的差异。问题是我想转换像素高度方面的差异以向上或向下移动比例

function setScalesToValue(fValue) {

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

}

初始刻度位置为 183,然后添加或减去 diff 以显示刻度上的投影。它工作得不太好,我正在寻求任何人的帮助,以使用回报百分比来移动规模

注意:fValue 不能超过 20px。

任何指导将不胜感激。

4

1 回答 1

1

警告:我很累,这是未经测试的,而且我很少弄乱 javascript - 所以我希望这是有道理的。

关键是要确定将比例推到最大的最大差异。当你得到真正的差异时,你会看到你拥有的最大值的百分比。然后你就得到了 20 像素的百分比。当然,任何超过 100% 的内容您只需校正为 100%,这样您就不会超过 20 像素。(我希望这段代码有效)

变量差异;
var max_expected_difference;
变量差异百分比;
变量 f 值;

diff_percent = 差异/最大预期差异;
diff_percent = Math.round(diff_percent*100)/100;

如果 (diff_percent>1) diff_percent = 1;
如果(差异百分比

如果不清楚,您将在任何一种情况下添加到 183px。如果差值为负,则 fValue 应为负。

编辑:看起来我误解了你是如何实现这个的,但基本的想法仍然适合你。老实说,如果你的最大卡路里变化是 200%,那么你的 fValue 的捷径就是将你的 % 差异除以 10 并四舍五入。所以 148% 是 15px,81% 是 8px,等等......

于 2010-08-06T05:58:55.327 回答