2010-08-06 2 views
0

얘들을 가지고 분산 나 비율 환산 값의 차이를 표시하는 눈금을 만들었다. 문제는 그 아래제가</p> <p>(200 %)의 개 포뮬러 규모를 cals_out VS cals_in의 비율

function setScalesToValue(fValue) { 

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

} 

스케일 업 또는 초기 스케일 위치 다음 DIFF를 첨가하거나 눈금의 돌기를 표시 감산되고, 183 인 이동 픽셀 높이의 관점에서 차분을 변환하고 싶어한다. 그것은 너무 잘 작동하지 않고 저울 이동을 위해 반환 비율을 사용하는 다른 사람의 도움을 찾고 있습니다

NB : fValue는 20px를 초과 할 수 없습니다.

모든 안내는 감사하겠습니다.

답변

1

경고 : 저는 매우 피곤합니다. 이것은 매우 테스트되지 않았으며 거의 ​​자바 스크립트가 엉망입니다. 그래서 이것이 의미가 있기를 바랍니다.

중요한 점은 눈금을 최대한으로 밀어내는 최대 차이를 결정하는 것입니다. 실질적인 차이점을 얻으면 최대의 몇 퍼센트를 볼 수 있습니다. 그런 다음 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에 추가됩니다. 차이가 음수이면 fValue는 음수 여야합니다.

편집 : 어떻게 구현하고 있는지 오해 한 것처럼 보이지만 기본 아이디어는 여전히 잘 작동합니다. 솔직히, 최대 칼로리 변화가 200 %라면 fValue에 대한 바로 가기는 % 차이를 10으로 나누고 소수점 이하를 반올림합니다. 그래서 148 %는 15px, 81 %는 8px 등이 될 것입니다 ...

+0

고마워요.이 사람이이 문제를 해결하는 데 정말로 도움이됩니다. :) – ferronrsmith