2016-08-06 29 views
1

Warum funktioniert der Übergangseffekt nur auf einer Eigenschaft?

img { 
 
    width: 40%; 
 
    height: 30%; 
 
    padding: 3%; 
 
    transition: all 2s; 
 
} 
 
img:hover { 
 
    -webkit-transform: rotate(360deg); 
 
    -webkit-transform: scaleX(2); 
 
    -webkit-transition: all 1s; 
 
}
<img src="http://www.jqueryscript.net/images/Simplest-Responsive-jQuery-Image-Lightbox-Plugin-simple-lightbox.jpg">

Hier wird der Übergang Eigenschaft für alle Eigenschaften definiert. Wenn die Maus über das Bild bewegt wird, wird jedoch nur die zweite Transformationseigenschaft (die die Funktion scaleX() definiert) geändert. Die erste Transformationseigenschaft bleibt unverändert. Warum ändert sich der erste nicht? Wie kann ich beide gleichzeitig ändern?

+0

Sie müssen es auf eine einzige Zeile schreiben: '-webkit-transform: rotate (360deg), scaleX (2);' – n00dl3

+0

@ n00dl3 versuchte ich es, aber es verursacht auch Diese eine Eigenschaft, die man nicht mehr ändern kann. – Parth

Antwort

2
img { 
    width: 40%; 
    height: 30%; 
    padding: 3%; 
    transition: all 2s; 
} 
img:hover { 
-webkit-transform: rotate(360deg) scaleX(2); 
} 

FIDDLE: https://jsfiddle.net/c6z4wy5x/

+0

Verwenden wir nicht Komma, um verschiedene Werte zu trennen? – Parth

+0

@unknown Nein, diese Antwort ist richtig. Überprüfen Sie die Dokumente. – nicael

+0

Gibt es einen Prioritätsmechanismus in CSS? Oder ändert es nur die Eigenschaft vor der Übergangseigenschaft? – Parth