2011-08-05 15 views
20

tengo este códigojQuery atributo css cambio lentamente

$('#uiAdminPanelMenu li a').hover(function(){ 
    $(this).css('background-color', '#D3E1FA'; 
}, 
function(){ 
    $(this).css('background-color', '#F4F4F4'); 
}); 

que cambia el color de fondo de la relación, pero yo quiero que cambie lentamente, un poco como efecto de fundido, pero para este caso.

+4

posiblemente incluso [animado()] (http://api.jquery.com/animate/) se ? –

Respuesta

28

Usted puede lograr lo mismo con las transiciones CSS3. El resultado será casi el mismo.

#uiAdminPanelMenu li a { 
    background-color: F4F4F4; 
    -webkit-transition: background-color 0.4s ease; 
    -moz-transition: background-color 0.4s ease; 
    -o-transition: background-color 0.4s ease; 
    transition: background-color 0.4s ease; 
} 

#uiAdminPanelMenu li a:hover { 
    background-color: D3E1FA; 
} 
+0

muy agradable, gracias! – Grigor

+2

esto funciona perfectamente para navegadores de alta gama. pero IE no lo reconoce, así que jQuery es mejor para esto, creo que – Grigor

+0

Bueno, IE nunca me ha gustado jugar bien ... : { – awesomesyntax

20

Quiere usar animate(), pero también necesita el Color Plugin for jQuery.

Con el plug-in de color incluido, el siguiente código funciona bien:

$('#uiAdminPanelMenu li a').hover(function(){ 
    $(this).animate({'background-color': '#D3E1FA'}, 'slow'); 
}, 
function(){ 
    $(this).animate({'background-color': '#F4F4F4'}, 'slow'); 
}); 
+1

IE: http://jsfiddle.net/qa7R2/ – Paulpro

+1

error 404 para el * plugin de color de jQuery * – Lucio

+1

@Lucio Gracias por informarme. Las últimas versiones del plugin de color son compatibles con jQuery 2. Actualicé el enlace y respondí. – Paulpro

0

Puede ser que sea muy tarde para responder esta pregunta, pero aún así quería proporcionar una solución alternativa que funcionó para mí. (Ambas respuestas proporcionadas anteriormente funcionarán). Utilicé CSS Animation y eso funcionó mejor para mí que jquery animar en algunos otros casos también. Usted puede intentar el siguiente -

// 'bcolor' es la animación de fotogramas clave nombre definido más adelante

#uiAdminPanelMenu li a:hover { 
    -webkit-animation-name: bcolor; 
    -webkit-animation-duration: 1s; 
    -webkit-animation-fill-mode: forwards; 
    -moz-animation-name: bcolor; 
    -moz-animation-duration: 1s; 
    -moz-animation-fill-mode: forwards; 
    animation-name: bcolor; 
    animation-duration: 1s;  
    animation-fill-mode: forwards; 
} 

@-webkit-keyframes shadeOn { 
    from {background-color: #F4F4F4;} 
    to {background-color: #D3E1FA;} 
} 
@-moz-keyframes shadeOn { 
    from {background-color: #F4F4F4;} 
    to {background-color: #D3E1FA;} 
} 
@keyframes shadeOn { 
    from {background-color: #F4F4F4;} 
    to {background-color: #D3E1FA;} 
} 
Cuestiones relacionadas