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格式或替换方法,但通常连接+更简单。

于 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 回答