2016-04-10 5 views
0

Wie legen Sie doppelte Attribute in einem einzelnen CSS-Aufruf an jQueryLite fest? In Winkel, möchte ich so etwas wie dies auf einem SVG-Bild tun:Kann doppelte Attribute in CSS-Aufruf zu jQueryLite nicht setzen

element.css({'transform': "rotate("+rot*360+"deg)",'transform': "scale("+scl+")"}); 

Dies sowohl die Rotation und die Skalierung eines SVG-Bild setzt. Das Ergebnis ist jedoch, dass das letzte Transformationsattribut alle vorherigen überschreibt. D.h., ich kann die Skala oder die Drehung einstellen, aber nicht beides.

In diesem Beispiel würde die erwartete CSS wie folgt aussehen:

transform: rotate(360deg); transform: scale(1) 

Antwort

1

Das hat nichts mit JavaScript oder jQueryLite zu tun - in einem Stylesheet würden sich mehrere Deklarationen für dieselbe Eigenschaft gegenseitig überschreiben.

Die korrekte Syntax mehrere Transformationen angeben, ist

transform: rotate(360deg) scale(1) 
+0

Ah so einfach. Meine Frage war so dumm. Danke für die schnelle Antwort. – metalaureate

2

Sie keine CSS-Eigenschaft auf zwei völlig unterschiedliche Werte zur gleichen Zeit eingestellt werden.

Wenn Sie schrieb:

transform: rotate(360deg); transform: scale(1) 

dann der zweite Wert die erste überschreiben würde und es wäre das gleiche wie

transform: scale(1) 

Die Transformations Eigenschaft am Ende als nimmt eine durch Leerzeichen getrennte Liste von Werten . Sie würden schreiben müssen:

transform: rotate(360deg) scale(1); 

und in der Theorie, die Sie tun genau das gleiche in Ihrem JS:

element.css({'transform': "rotate("+rot*360+"deg) scale("+scl+")"}); 
1

Warum nicht die, durch die Zusammenlegung:

element.css({'transform': "rotate("+rot*360+"deg) scale("+scl+")"}); 
Verwandte Themen