jQuery медленно меняет атрибут css - PullRequest
22 голосов
/ 05 августа 2011

У меня есть этот код

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

он меняет цвет фона ссылки, но я хочу, чтобы он менялся медленно, вроде эффекта затухания, но для этого случая.

Ответы [ 3 ]

31 голосов
/ 05 августа 2011

Вы можете сделать то же самое с переходами CSS3.Результат будет почти таким же.

#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;
}
22 голосов
/ 05 августа 2011

Вы хотите использовать animate(), но вам также нужен Color Plugin для jQuery .

С включенным плагином цвета следующий код работает хорошо:

$('#uiAdminPanelMenu li a').hover( function(){
    $(this).animate({'background-color': '#D3E1FA'}, 'slow');
 },
 function(){
    $(this).animate({'background-color': '#F4F4F4'}, 'slow');
});
0 голосов
/ 03 марта 2018

Возможно, уже очень поздно отвечать на этот вопрос, но я все же хотел предложить альтернативное решение, которое сработало бы для меня. (Оба ответа, предоставленные ранее, будут работать). Я использовал CSS Animation, и это работало для меня лучше, чем JQuery Animate в некоторых других случаях. Вы можете попробовать ниже -

// 'bcolor' - это имя ключевого кадра анимации, определенное позже

#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;}
}
...