2010-08-06 73 views
0

嗨我有一个式cals_in的VS 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。

任何指导将不胜感激。

回答

1

警告:我非常疲倦,这是非常未经测试的,而且我很少陷入与javascript - 所以我希望这是有道理的。

重点是决定一直推动规模的最大差异。当你得到真正的区别时,你会看到你拥有的最大百分比。那么你只需要20个像素的百分比。当然,任何超过100%的东西你都会纠正到100%,所以你不会超过20个像素。 (我希望这段代码有效)

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

如果不清楚,在任何情况下都会添加到183px。如果差值为负值,f值应为负数。

编辑:它看起来像我误解你如何实现这一点,但基本的想法仍然可以为你工作。老实说,如果你最大的卡路里变化是200%,那么你的fValue的一个快捷方式就是将你的差值除以10,并舍去小数点。所以148%将是15px,81%将是8px,等等......

+0

谢谢,这真的帮助我解决问题:) – ferronrsmith 2010-08-06 16:35:32