2012-12-08 15 views
38

Si consideri il seguente fiddleCSS3 trasforma e transizioni (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); 
} 

La transizione funziona senza problemi in FF, ma non v'è alcuna transizione a tutti in Safari o Chrome (sul mio Mac).

La proprietà di transizione deve essere prefissa o c'è qualche tipo di errore di sintassi nel mio codice?

+0

uso prefixfreejs per rendere la vita facile –

risposta

94

aggiungere il prefisso fornitore nelle transizioni:

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); 
} 

Aggiornamento (05/06/2014)

Per rispondere ad alcune osservazioni, la ragione per omettere -ms-transition, è che non è mai esistito .

Check:

Can I Use? Transitions,

Can I Use? Transforms,

MDN transitions,

MDN transforms

+0

Naturalmente ho appena aggiunto il prefisso -webkit- perché il tuo reclamo riguardava Safari e Chrome. Dovresti aggiungere il prefisso per -moz- e il resto, ma in base a ciò che hai detto, FF non ne ha bisogno. –

+0

Sì, ovviamente. Non ho trovato alcuna documentazione al riguardo. In tutte le risorse ho trovato che la proprietà di transizione non è prefissata. – gregory

+1

Sapevo solo che doveva funzionare, ma non ho trovato nessun esempio diretto, anche. La cosa più vicina era questa: http://css-infos.net/property/-webkit-transition-property, in cui puoi vedere che lo deve essere lo stesso nome della regola CSS ... in questo caso con il prefisso del venditore. Cheers –

Problemi correlati