2013-02-03 66 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 +”)“;