2012-12-08 5 views
38

Betrachten Sie die folgende fiddleCSS3-Transformationen und Übergänge (Webkit)

p { 
    -webkit-transform: translate(-100%, 0); 
    -moz-transform: translate(-100%, 0); 
     -ms-transform: translate(-100%, 0); 
     -o-transform: translate(-100%, 0); 
      transform: translate(-100%, 0); 
    -webkit-transition: transform 1s ease-in; 
    -moz-transition: transform 1s ease-in; 
     -o-transition: transform 1s ease-in; 
      transition: transform 1s ease-in; 
} 

a:hover + p { 
    -webkit-transform: translate(0, 0); 
    -moz-transform: translate(0, 0); 
     -ms-transform: translate(0, 0); 
     -o-transform: translate(0, 0); 
      transform: translate(0, 0); 
} 

Der Übergang in FF reibungslos funktioniert, aber es ist überhaupt kein Übergang in Safari oder Chrome (auf meinem Mac).

Hat die Übergangseigenschaft das Präfix oder gibt es eine Art Syntaxfehler in meinem Code?

+0

Verwendung prefixfreejs Ihr Leben einfach –

Antwort

94

den Hersteller Präfix in den Übergängen hinzufügen:

p { 
    -webkit-transform: translate(-100%, 0); 
    -moz-transform: translate(-100%, 0); 
     -ms-transform: translate(-100%, 0); 
     -o-transform: translate(-100%, 0); 
      transform: translate(-100%, 0); 
    -webkit-transition: -webkit-transform 1s ease-in; /* Changed here */ 
    -moz-transition: -moz-transform 1s ease-in; 
     -o-transition: -o-transform 1s ease-in; 
      transition: transform 1s ease-in; 
} 

a:hover + p { 
    -webkit-transform: translate(0, 0); 
    -moz-transform: translate(0, 0); 
     -ms-transform: translate(0, 0); 
     -o-transform: translate(0, 0); 
      transform: translate(0, 0); 
} 

-Update (05/06/2014)

einige Kommentare zu beantworten, den Grund -ms-transition wegzulassen, ist, dass es nie existiert hat .

Check:

Can I Use? Transitions,

Can I Use? Transforms,

MDN transitions,

MDN transforms

+0

Natürlich zu machen Habe ich nur noch die -webkit- Präfix weil deine Beschwerde über Safari und war Chrom. Sie sollten das Präfix für -moz- und den Rest hinzufügen, aber basierend auf dem, was Sie gesagt haben, FF braucht es nicht. –

+0

Ja, offensichtlich. Ich habe keine Dokumentation darüber gefunden. In allen Ressourcen habe ich festgestellt, dass die Übergangseigenschaft kein Präfix hat. – gregory

+1

Ich wusste nur, dass es funktionieren musste, aber ich fand auch kein direktes Beispiel. Die nächste Sache war diese: http://css-infos.net/property/-webkit-transition-property, in der Sie sehen können, dass die den gleichen Namen wie die CSS-Regel haben muss ... in diesem Fall mit das Anbieterpräfix. Prost –