Usando keyframes, es posible animar un elemento tan pronto como se inserta en el DOM. noCSS3 - Transición en la eliminación de DOM
@-moz-keyframes fadeIn {
from {opacity:0;}
to {opacity:1;}
}
@-webkit-keyframes fadeIn {
from {opacity:0;}
to {opacity:1;}
}
@keyframes fadeIn {
from {opacity:0;}
to {opacity:1;}
}
#box {
-webkit-animation: fadeIn 500ms;
-moz-animation: fadeIn 500ms;
animation: fadeIn 500ms;
}
es un poco de funcionalidad similar disponible para aplicar una animación (a través de CSS, sin JavaScript) a un elemento justo antes de que se retira del DOM: He aquí algunos ejemplos de CSS? Debajo hay un jsFiddle que hice para jugar con esta idea; no dude en bifurcarlo si conoce una solución.
jsFiddle - http://jsfiddle.net/skoshy/dLdFZ/
Esto es bastante inteligente, pero si voy una ruta JavaScript yo sólo podría llamar '$ ('# fill '). fadeOut() '. Lo que realmente estoy buscando es una solución única de CSS: no sabía que desaparecer en un elemento era posible hasta que vi muchos foros, así que espero que alguien sepa cómo desvanecer un elemento también. – Steve
Pero '.fadeOut()' usa JavaScript para hacer la animación.Esto realmente usa CSS para la animación. Simplemente usa JavaScript para activarlo en el momento correcto. Y dado que está usando JavaScript de todos modos para insertar/eliminar realmente el elemento, "CSS only" es algo arbitrario. Simplemente no hay forma de activar algo en CSS para que ocurra justo antes de que se elimine. Si convertiste esos divs de "haz clic en mí" en enlaces, es posible que puedas usar '.hide: active + # fill' como selector para desencadenar el desvanecimiento, pero aún necesitarías un evento' animationend' para eliminar el elemento cuando se haya desvanecido. – mercator
@ S.K .: En resumen, no. CSS no está relacionado con la manipulación DOM como agregar y eliminar elementos. El truco de FadeIn funciona porque la animación ocurre cada vez que el elemento aparece por primera vez simplemente porque ese es el primer momento en que PUEDE suceder. Para que un elemento sepa FadeOut, necesitaría saber que está a punto de ser eliminado, y eso solo es posible con Javascript. Y como Mercator dijo, ya que usted está usando Javascript para eliminar el elemento, el requisito de "solo CSS" es arbitrario. – joequincy