2010-08-06 75 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