Quiero utilizar una transición de color CSS3 para aplicar un efecto de color de desvanecimiento de resaltado (amarillo a transparente) a los nuevos elementos añadidos al marcado usando JQuery.CSS3 Transición para resaltar los elementos nuevos creados en JQuery
CSS
#content div {
background-color:transparent;
-moz-transition:background-color 2s;
-webkit-transition:background-color 2s;
-o-transition:background-color 2s;
transition:background-color 2s;
}
#content div.new {
background-color:yellow;
}
HTML
<div id="content"></div>
<a id="add-element" href="#">add new element</a>
JS
$('#add-element').click(function() {
var newElement = $('<div class="new">new element</div>');
$('#content').append(newElement);
newElement.removeClass('new');
});
Cuando pulso en el enlace, se crea el nuevo elemento. Su clase es "nueva" (color de fondo amarillo) y se agrega al marcado HTML. Debería poder eliminar inmediatamente la clase "nueva" para activar la transición de color de fondo a transparente (o cualquier otro color). Obviamente lo estoy haciendo mal, ya que el color de fondo del nuevo elemento se muestra inmediatamente como transparente, sin efecto de transición. Sé que puedo hacer esto en la interfaz de usuario de JQuery, pero me gustaría usar las transiciones CSS3.
jsFiddle aquí:
http://jsfiddle.net/paulaner/fvv5q/
Gracias. Está funcionando en Chrome, pero parece ser inestable y errático en Firefox. – Paulaner
@Paulaner Andy tiene la respuesta correcta, y esto es en lo que estoy pensando. Usar 1000 en lugar de 0 podría ser mejor ya que desea ver la transición, 0 solo parpadeará y desaparecerá. Por cierto, no veo la transición aquí con FF15, en cambio, es un amarillo sólido, no compatible todavía? @Andy, no lo considero un 'hack'. En esta situación particular, debería funcionar de esta manera porque jQuery ejecutó inmediatamente removeClass después de anexar, y es por eso que la transición ** should ** no se debe ver. – user1643156
Gracias chicos. Rezigned acaba de publicar una solución limpia que funciona perfectamente para mí. – Paulaner