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で、次に差分が加算または減算されて、スケール上の投影が表示されます。それはあまりうまく機能しておらず、私はスケールを動かすためにリターンパーセンテージを使用するために誰かの助けを求めています

注意:fValueは20pxを超えることはできません。

任意のガイダンスをいただければ幸いです。

4

1 に答える 1

1

警告:私は非常に疲れています、これは非常にテストされていません、そして私はめったにjavascriptを台無しにしないので、これが理にかなっていることを願っています。

重要なのは、スケールを完全に押し上げる最大の差を決定することです。あなたが本当の違いを得るとき、あなたはあなたが持っている最大の何パーセントかを見る。次に、20ピクセルのそのパーセントを取得します。もちろん、100%を超えるものはすべて、100%に修正するだけなので、20ピクセルを超えないようにします。(このコードが機能することを願っています)

変数の違い;
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へのショートカットは%differenceを10で割り、小数点以下を四捨五入します。したがって、148%は15ピクセル、81%は8ピクセルなどになります。

于 2010-08-06T05:58:55.327 に答える