2013-05-31 16 views
5

C'è un modo per rilevare nel mio Javascript se un elemento è attualmente animato con una transizione CSS3?Verifica se la transizione CSS3 è in esecuzione

Un evento "transitionstart" (equivalente all'evento "transistionend") funzionerebbe anche, ma non riesco a trovarlo nella descrizione.

+1

http://stackoverflow.com/questions/2794148/css3-transition-events, http://stackoverflow.com/questions/ 7264899/detect-css-transitions-using-javascript-and-without-modernizr? – coma

+1

Purtroppo questo non aiuta molto, dal momento che le risposte nel primo collegamento si concentrano su "transistionend" e il secondo link tratta solo il rilevamento di funzionalità per transistioni css3. :/ – johnny

+0

hai trovato la mia risposta utile? – coma

risposta

2

Ebbene, poiché non v'è solo un evento transitionend (http://www.w3.org/TR/css3-transitions/#transition-events) qualcosa di brutto mi viene in mente:

http://jsfiddle.net/coma/psbBg/6/

JS

$(function() { 

    var div = $('div'); 
    var property = div.css('transition-property'); 
    var lastValue = div.css(property); 

    setInterval(function() { 

     if(lastValue !== div.css(property)) { 

      console.log('changed!'); 

     } 

     lastValue = div.css(property); 

    }, 10); 

}); 

Può essere migliorata attuazione eventi personalizzati, avendo cura di ottenere la corretta proprietà di transizione (o proprietà) e più idee, ma ottieni l'immagine giusta?

Forse avete bisogno di prendere un altro sentiero a risolvere il tuo problema originale ...

+2

Penso che volevi controllare la proprietà 'transform' e non la 'transistione', giusto? Ma ho avuto l'idea. Sembra un po 'forzato, ma probabilmente è l'unico modo per andare. Grazie! – johnny

+0

oh, grazie per il punto, ora sto usando la proprietà di transizione: http://jsfiddle.net/coma/psbBg/6/ – coma

Problemi correlati