jQuery медленно изменяет атрибут css
У меня есть этот код
$('#uiAdminPanelMenu li a').hover( function(){
$(this).css('background-color', '#D3E1FA';
},
function(){
$(this).css('background-color', '#F4F4F4');
});
Он изменяет цвет фона ссылки, но я хочу, чтобы он менял его медленно, как эффект затухания, но для этого случая.
3 ответов
вы можете выполнить то же самое с переходами 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;
}
вы хотите использовать animate()
, но вам также нужно цветной плагин для jQuery.
С включенным цветным плагином хорошо работает следующий код:
$('#uiAdminPanelMenu li a').hover( function(){
$(this).animate({'background-color': '#D3E1FA'}, 'slow');
},
function(){
$(this).animate({'background-color': '#F4F4F4'}, 'slow');
});
может быть, очень поздно отвечать на этот вопрос, но все же хотел предоставить альтернативное решение, которое сработало для меня. (Как ответы раньше получится). Я использовал анимацию CSS, и это работало лучше для меня, чем 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;}
}