2012-12-08 12 views
38

Rozważmy następujący fiddleCSS3 transformacje i przejścia (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); 
} 

Przejście działa płynnie w FF, ale nie ma w ogóle przejście w Safari lub Chrome (na komputerze Mac).

Czy właściwość przejścia ma być prefiksowana lub czy w moim kodzie występuje jakiś błąd składniowy?

+0

użytku prefixfreejs aby twoje życie proste –

Odpowiedz

94

dodać przedrostek producent na przemian:

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 (06/05/2014)

Aby odpowiedzieć na kilka uwag, powodem pominięcia -ms-transition, jest to, że nigdy nie istniał .

Sprawdź:

Can I Use? Transitions,

Can I Use? Transforms,

MDN transitions,

MDN transforms

+0

Oczywiście ja tylko dodaje -webkit- prefiks ponieważ twoja skarga dotyczyła Safari i Chrome. Powinieneś dodać prefiks dla -moz- i reszty, ale na podstawie tego, co powiedziałeś, FF tego nie potrzebuje. –

+0

Tak, oczywiście. Nie znalazłem żadnej dokumentacji na ten temat. We wszystkich zasobach stwierdziłem, że właściwość przejścia jest nieprefiksowana. – gregory

+1

Po prostu wiedziałem, że to musi zadziałać, ale nie znalazłem też żadnego bezpośredniego przykładu. Najbliższe było to: http://css-infos.net/property/-webkit-transition-property, w którym widać, że musi być taką samą nazwą jak reguła CSS ... w tym przypadku z prefiks dostawcy. Pozdrawiam –

Powiązane problemy