jQuery:悬停链接时在div中动画(淡化)背景颜色或图像?

Posted

技术标签:

【中文标题】jQuery:悬停链接时在div中动画(淡化)背景颜色或图像?【英文标题】:jQuery: Animate (fade) background-color or image in div when hover a link? 【发布时间】:2012-04-22 19:38:45 【问题描述】:

我想在 redhotchilipeppers.com 上创建一个菜单。当您将链接悬停在右上角时,整个页面的背景颜色会发生变化。原始图像仍然在后面,只是颜色发生了变化。

您可以在下面看到我是如何尝试实现它的。它的褪色太慢了,当我悬停一个链接然后另一个链接时,它首先淡入第一个链接的背景颜色,然后恢复正常,然后恢复到第二个链接的背景颜色。在 redhotchilipeppers.com 上,bg 颜色会立即消失。

这是我现在使用的代码:

<head>
<style>
body 
margin:0 auto;
top:0;
left:0;
height:100%;
width:100%;
background:url(images/bg.jpg);


#container 
width:100%;
height:100%;
display:block;
position:absolute;
top:0;
left:0;
opacity:0.4;
filter:alpha(opacity=40);
-moz-opacity: 0.4;
background-color:#fff;
z-index:-1;


.link 
position:inherit;
z-index:1;
float:right;
padding-top:100px;

</style>
</head>

<body>
<div id="container"></div>
<div class="link">
<a href="" id="linktomouseover"><img src="images/menu_start.png"  /></a><a href="" id="linktomouseover2"><img src="images/menu_contactus.png"  /></a>
</div>

<script> 
jQuery('#linktomouseover').hover(function()  
jQuery('#container').animate( backgroundColor: "#2154b9", 500);
).mouseleave(function()
jQuery('#container').animate( backgroundColor: "#ffffff", 500); 
);

jQuery('#linktomouseover2').hover(function()  
jQuery('#container').animate( backgroundColor: "#ac1c27", 500);
).mouseleave(function()
jQuery('#container').animate( backgroundColor: "#ffffff", 500); 
);
</script>
</body>

我做错了什么?还是有更好的方法来解决这个问题?

【问题讨论】:

可能是重复的.. 看看这里***.com/questions/8478685/… 【参考方案1】:

令人惊讶的是,jQuery 不会为背景颜色设置动画(没有插件)。最简单的方法是使用 CSS 更改类并使用 CSS 过渡,如下所示:

$('#linktomouseover').hover(function() 
    $('#container').addClass('hover1')
, function() 
    $('#container').removeClass('hover1')
);

#container 
    transition: background-color 0.5s;
    -moz-transition: background-color 0.5s;
    -webkit-transition: background-color 0.5s;
    -o-transition: background-color 0.5s;

jsFiddle:http://jsfiddle.net/kkzLW/

无论如何它更符合语义:)

【讨论】:

哇!那效果很好。感谢您的快速答复。但我注意到的一件事是褪色在 Internet Explorer 中不起作用。可能有解决办法吗?

以上是关于jQuery:悬停链接时在div中动画(淡化)背景颜色或图像?的主要内容,如果未能解决你的问题,请参考以下文章

使用 CSS3 使图像/div 淡化,而不使用悬停

jQuery同时动画和淡化背景图像

使用 jQuery 自动为所有悬停状态设置动画

Jquery淡入淡出背景/表格行上的动画背景颜色

JQuery 帮助 - 动画背景颜色

动画淡化链接的代码[关闭]