2012-10-17 16 views
15

voglio smettere di una transizione che è in corso.Come smettere di CSS3 transizione

ho trovato alcuni riferimenti [1] [2] sparsi in giro per internet, ma io non riesco a mettere insieme.

Ecco un violino del primo suggerimento (con jQuery e CSS di transito per il contesto): http://jsfiddle.net/thomseddon/gLjuH/

Grazie

[1] https://twitter.com/evilhackerdude/status/20466821462

[2] github.com/madrobby/zepto/ problemi/508

+0

controllo questo fuori forse aiutare http://stackoverflow.com/questions/5312289/interrupting-stop-a-css3-transition-on-the-actual-position-state – Afshin

+0

Grazie, avrebbe dovuto anche ad esso collegati –

+0

Got it: http://jsfiddle.net/thomseddon/gLjuH/3/ –

risposta

9

Così ho capito: http://jsfiddle.net/thomseddon/gLjuH/3/

Il trucco è quello di impostare eac Proprietà h css si sta animando al suo valore attuale (eventualmente metà di transizione) come: $(this).css('prop', $(this).css('prop')); (Probabilmente vorrebbe conservare tutte le proprietà di un oggetto nell'elemento con $ (this) .data (oggetti di scena); e passa attraverso di loro).

volta in modo esplicito impostare le proprietà è possibile eseguire un'animazione 0s per ignorare l'animazione precedente e arrestare efficacemente l'elemento.

+3

Grazie per il jsfiddle. Ho fatto un po 'di refactoring e ho discusso il concetto base qui: http://jsfiddle.net/jedhunsaker/gLjuH/13/ – jedmao

+0

@mrjedmao - il collegamento del violino è morto :( – Danield

+1

@Danield scusate, ho cambiato il mio nome recentemente così è ora http://jsfiddle.net/jedmao/gLjuH/13/ – jedmao

1

C'è una soluzione molto più semplice. Se vuoi interrompere la transizione (e non metterla in pausa). Basta impostare il css sullo stile corrente calcolato. Ad esempio in una soluzione di scorrimento personalizzata, dove top è la proprietà di transizione.

element.style.top=getComputedStyle(element).top; 

e il gioco è fatto.

Problemi correlati