0
function Scale(){
    X = innerWidth / 1024;
    Y = innerHeight / 768;

    Z = document.getElementById("IFM");
    Z.style.transform = "scale(X, Y)";
}

このコードに問題があります。スケールで変数を使用できませんでした!
この問題で何ができますか?

4

4 に答える 4

2

JavaScriptにはインライン文字列変数はありません。できることは、文字列を連結することだけです。

Z.style.transform = "scale("+X+", "+Y+")";

数値は暗黙的に文字列に変換されます。

いくつかのカスタムのsprintfようなformatメソッドまたはreplaceメソッドを使用することもできますが、通常はとの連結の+方が簡単です。

于 2013-02-03T18:39:07.433 に答える
1

concats / plusを使用して文字列を作成するか、を使用しますString.prototype.replace

Z.style.transform = "scale(" + X + "," + Y + ")";

またはのようなヘルパーと

String.prototype.sFormat = function _simpleFormat( map ) {
    var myString    = this.toString(),
        args        = map instanceof Array ? map : Array.prototype.slice.call( arguments );

    while( ~myString.indexOf( '%r' ) ) {
        myString = myString.replace( '%r', args.shift() );
    }

    return myString;
};

..そして次のように行きます

Z.style.transform = "scale(%r, %r)".sFormat(X,Y);
于 2013-02-03T18:39:50.640 に答える
0

その行を次のように変更します。

Z.style.transform = "scale(" + X +", "+ Y + ")";
于 2013-02-03T18:40:18.167 に答える
0

この方法を試してください"scale(" + X + "、" + Y + ")";

于 2013-02-03T18:41:03.687 に答える