2012-08-03 41 views
0

我创建了动态背景鼠标悬停此代码的工作,但它不工作,只改变为其他的背景,但是当我使用功能animate不显示效果:jQuery的动画不为我

$(".b_header").mouseover(function() { 

$(this).css("background-image","url(images/bot/head_down.png)"); 



/* 

Also I've tried other effects and nothing 

$(this).css({backgroundPosition: "0 0"}); 


$(this).animate(
{backgroundPosition:"(-20px -53px)"}, 
{duration:500}); 
*/ 

$(this).animate({ opacity: 5 }, 3000); 

}); 
+0

[jquery animate background position]的可能的重复(http://stackoverflow.com/questions/5171080/jquery-animate-background-position) – epascarello 2012-08-03 17:54:52

+1

'opacity'从0变为1. – 2012-08-03 17:55:11

+0

'opacity'从'0' (透明)到'1'(不透明) – Mathletics 2012-08-03 17:55:13

回答

4

首先,请确保你使用的document.ready

$(document).ready(function() { 
    ...... 
    $(this).animate({ opacity: 1 }, 3000); 
}); 

第二,在你的CSS文件中所做的确定你设置了跨浏览器不透明度属性

opacity: 0; /* Chrome 4+, FF2+, Saf3.1+, Opera 9+, IE9, iOS 3.2+, Android 2.1+ */ 
filter: alpha(opacity=0); /* IE6-IE8 */ 

最后,不透明度值范围从0(隐藏)到1(不透明),有NO 5值,但它会很好地工作,如果是1

和这里的一个工作示例=>http://jsfiddle.net/abdullahdiaa/PxGwz/

1

jQuery的动画函数不支持具有多个值的CSS属性。您通常可以单独为每个单独的值设置动画。所以,这就解释了为什么试图动画背景位置这两个值都不起作用。

jQuery doc for .animate()

所有动画处理的属性应该被动画化以单一数值,

对于动画不透明度,它需要的值从0到1,而不是一个值5并且看到动画以不透明的方式工作,则对象将不得不以不同的不透明度开始,而不是您正在进行的动画。

这里的动画不透明度的工作示例:http://jsfiddle.net/jfriend00/zCL7S/

+0

和动画背景图像? ,我想这样做,但我不知道它的使用问题,直到功能jQuery的CSS和这个没有工作? – Fran 2012-08-03 19:08:04

+0

@Fran - 动画背景图像如何? – jfriend00 2012-08-03 19:57:53