【发布时间】:2011-01-31 16:57:45
【问题描述】:
我有一个由单个图像(例如精灵)组成的菜单。为了显示悬停图像,我只需将背景图像向下移动。我希望这种效果可以由 jQuery 控制并进行动画处理。
这是一个示例菜单项。
<ul>
<li id="home"><a href="#"></a></li>
</ul>
这就是我在玩弄的东西。我对 jQuery 很陌生,在正确选择选择器时遇到问题。
$(document).ready(function(){
$('#home a');
// Set the 'normal' state background position
.css( {backgroundPosition: "0 0"} )
// On mouse over, move the background
.mouseover(function(){
$(this).stop().animate({backgroundPosition:"(0 -54px)"}, {duration:500})
})
// On mouse out, move the background back
.mouseout(function(){
$(this).stop().animate({backgroundPosition:"(0 0)"}, {duration:500})
})
});
你能指出我做错了什么吗?我知道选择器可能不正确,但我很难弄清楚如何操作锚。
【问题讨论】:
-
到底发生了什么或没有发生什么?
-
您在 $('#home a') 选择器的末尾缺少一个分号。这样能解决吗?
-
@Pekka,基本上,什么都没有发生。背景没有出现,这让我相信选择器是错误的。 @ryanulit,添加了分号。不幸的是,没有变化。
-
为什么要在
$('#home a')中添加分号?这绝对是错误的,并且切断了随后的链式命令。 -
我们确定“背景位置”是 jQuery 可以动画的东西吗?我很少使用“animate()”,但从查看代码和阅读文档来看,它似乎真的想要处理像“height”和“width”这样具有单个数值的东西。 (另外,在我看来,动画精灵之间的过渡一般来说有点奇怪,但我当然不知道这些精灵长什么样。)