2013-05-31 18 views
5

Gibt es eine Möglichkeit, in meinem Javascript zu erkennen, ob ein Element gerade mit einem CSS3-Übergang animiert wird?Überprüfen, ob der CSS3-Übergang ausgeführt wird

Ein "transitionstart" -Ereignis (entspricht dem "transistionend" -Ereignis) würde ebenfalls funktionieren, aber ich kann es in der Spezifikation nicht finden.

+1

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

+1

Das hilft leider nicht sehr, da sich die Antworten im ersten Link auf "transistionend" und der zweite Link nur auf Feature-Erkennung für css3-Transisionen bezieht. :/ – johnny

+0

Haben Sie meine Antwort nützlich gefunden? – coma

Antwort

2

Nun, da es nur ein transitionend Ereignis (http://www.w3.org/TR/css3-transitions/#transition-events) etwas hässlich kommt meiner Meinung nach ist:

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

}); 

Es verbessert benutzerdefinierte Ereignisse Umsetzung werden können, Achten Sie darauf, die richtige Übergangseigenschaft (oder Eigenschaften) und mehr Ideen zu erhalten, aber Sie erhalten das Bild richtig?

Vielleicht brauchen Sie einen anderen Weg nehmen auf Ihrem ursprünglichen Problem zu lösen ...

+2

Ich denke, Sie wollten nach der 'Transform'-Eigenschaft und nicht nach' transitionion 'suchen, oder? Aber ich habe die Idee. Es scheint ein bisschen brutal-gezwungen, aber es ist wahrscheinlich der einzige Weg zu gehen. Vielen Dank! – johnny

+0

oh, danke für den Hinweis, jetzt benutze ich transition-property: http://jsfiddle.net/coma/psbBg/6/ – coma

Verwandte Themen