2013-02-03 107 views
0
function Scale(){ 
    X = innerWidth/1024; 
    Y = innerHeight/768; 

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

我對這段代碼有問題。我無法在規模上使用變量!
該如何解決這個問題?使用變量用javaScript設置樣式

+0

您如何看待字符串內容與變量的區別? – Bergi

回答

2

JavaScript沒有內聯字符串變量。你所能做的只是連接字符串:

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

這些數字將被隱式轉換爲字符串。

您不妨使用一些自定義sprintf-like格式或替換方法,但通常與+級聯更簡單。

+0

你打敗了我。 –

1

你要麼建立與concats/或使用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); 
0

更改該行:

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

嘗試這種方式「規模( 「+ X +」,「+ Y +」)「;