Прозрачный на самом деле не цвет. Таким образом, вы не можете оживить это. Вы можете достичь нужного эффекта, используя отдельный элемент для фона и анимируя прозрачность.
Пример:
HTML:
<body style="background-color:yellow">
<!-- by default, "see through" to parent's background color -->
<div id="container">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aenean nec magna. Nulla eu mi sit amet nibh pellentesque vehicula.
Vivamus congue purus non purus. Nam cursus mollis lorem.
</div>
</body>
Сценарий:
// on load...
$(function()
{
var container = $("#container");
container
.hover(
// fade background div out when cursor enters,
function()
{
$(".background", this).stop().animate({opacity:0});
},
// fade back in when cursor leaves
function()
{
$(".background", this).stop().animate({opacity:1})
})
// allow positioning child div relative to parent
.css('position', 'relative')
// create and append background div
// (initially visible, obscuring parent's background)
.append( $("<div>")
.attr('class', 'background')
.css({
backgroundColor:'blue',
position: 'absolute',
top:0,
left:0,
zIndex:-1,
width:container.width(),
height:container.height()
})
);
});
В комментарии Кингжеффри отмечается, что этот ответ несколько устарел - браузеры теперь поддерживают значения цвета RGBA, поэтому вы можете анимировать только фон. Однако jQuery не поддерживает это в ядре - вам понадобится плагин . Смотрите также: Цветовая анимация jQuery + RGBA