Como que estoy haciendo actualmente exactamente lo mismo que voy a compartir un útil, aplicación multi-navegador de un tutorial Marakana.
// First, we store the names of the event according to the browsers
var navigatorsProperties=['transitionend','OTransitionEnd','webkitTransitionEnd'];
//For each of them...
for(var i in navigatorsProperties)
{
//We attach it to our overlay div
el.addEventListener(navigatorsProperties[i],function()
{
// Here's the code we want to fire at transition End
console.log('transition end');
},false);
}
¡Es de notar que IE10 soporta transiciones con transitionend
(ver MSDN).
IE9 y por debajo de hacer no transiciones de apoyo (véase caniuse.com) por lo que no podrá adjuntar cualquier eventListener a un extremo de transición (así que no intente msTransitionend
o lo que sea para los navegadores).
EDIT: Mientras leía la documentación de Modernizr sobre Github tropecé con su página de polyfills de navegador cruzado. Entre muchos otros enlaces útiles encontré este pequeño pero extremadamente bueno transitionend script.
mente que los ejemplos en el Github README.md utilizan jQuery pero la biblioteca de hecho requiere hay bibliotecas y sin dependencias como está escrito en javascript vainilla.
¿Cómo asigno esto a una transición particular, como la opacidad? –
@Wraith: no puede asignarlo a una transición en particular. Por el contrario, escuchas el evento disparando sobre el elemento. A continuación, puede obtener la información que está buscando desde el objeto del evento. Ver mi actualización –
@Wraith: Busque "La detección de la terminación de una transición" en la página vinculada a José. 'propertyName': Una cadena que indica el nombre de la propiedad CSS cuya transición se completó. 'elapsedTime': Un flotador que indica el número de segundos que la transición había estado funcionando en el momento del evento disparado. Este valor no se ve afectado por el valor de la demora de transición. –