2011-07-23 12 views
5

Actualmente estoy usando jquery-animate-colors para animar el parpadeo de un borde, pero creo que mi código podría usar algo de limpieza. ¿Cuál es una mejor manera de abordar lo siguiente?Parpadeante jQuery .animation()

highlightRow = function(row, count) {    
if (count == null) {        
    count = 0;          
}            
$(row).animate({         
    "border-color": "#3737A2"      
}, {            
    duration: 250,         
    complete: function() {       
    return $(row).animate({      
     "border-color": "#FFFFFF"     
    }, {           
     duration: 250,        
     complete: function() {      
      if (count === 0) {      
       return highlightRow(row, count += 1); 
      }          
     }           
    });           
    }            
});            
};             

Así que estoy tratando de tener esto sólo parpadea el color del borde de encendido y apagado dos veces. Descubrí que tratando de animar border-color, no puedes usar nada además de los códigos hexadecimales. transparent y none ambos no animan nada en absoluto.

De todos modos, ¡buscando ayuda para limpiar esto! Gracias delante :)

Respuesta

10

Hay un efecto jQuery UI llamado 'pulsate' - http://jqueryui.com/demos/effect/ - ¿valdría la pena verlo?

Alternativamente, si está buscando una solución personalizada, intente lo siguiente. Puede encadenar efectos de animación y todos se agregarán a la cola de animación;

higlightRow = function(row) { 
    $(row).stop().animate({borderColor: "#3737A2"}, 250) 
    .animate({borderColor: "#FFFFFF"}, 250) 
    .animate({borderColor: "#3737A2"}, 250) 
    .animate({borderColor: "#FFFFFF"}, 250); 
} 

En caso de cambiar el color del borde de # 3737A2 a #FFFFFF, a # 3737A2, a #FFFFFF y luego terminar.

+0

Sí, eso es muchísimo mejor, ¡gracias! – matt

+0

No puedo ver 'borderColor' como se admite aquí https://github.com/jquery/jquery-color#readme – Michele