Почему не работает эта простая конкатенация Javascript? - PullRequest
0 голосов
/ 22 октября 2011

Я перепробовал все следующие, но ни один из них не работает:

iframe.style[transform] = 'scale('+(scale)+', 1) translate(-'+(0-scale)+'%, 0)';

iframe.style[transform] = 'scale('+(scale)+', 1) translate(-'+(-scale)+'%, 0)';

var translate = 0-scale;
iframe.style[transform] = 'scale('+(scale)+', 1) translate(-'+translate+'%, 0)';

var translate = 0-scale;
iframe.style[transform] = 'scale('+(scale)+', 1) translate(-'+translate.toString+'%, 0)';

Тем не менее, это работает, если я делаю это:

iframe.style[transform] = 'scale('+(scale)+', 1) translate(-0%, 0)';

Почему это не должно работать? Я использую Firefox 7 на Windows 7

Ответы [ 2 ]

0 голосов
/ 22 октября 2011

Проблема в том, что он может генерировать неверный синтаксис.Здесь:

'translate(-'+(0-scale)+'%, 0)';
           ^      ^
           |      |____ possible negative number
           |
           |___________ literal minus sign

может генерировать следующую строку:

translate(--0%, 0);
           ^
           |___________ double minus, which is invalid CSS
0 голосов
/ 22 октября 2011

Это не должно иметь значения, но вы пробовали:

iframe.style[transform] = "scale(" + scale.toString() + ", 1); translate(-" + translate.toString() + "%, 0);";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...