刚刚花了太多时间调试为什么我的jQuery animate()
调用停止正常工作,我意识到我的问题是animate()
调用中的属性必须按特定顺序。因此以下不正常工作:
$('div.example').animate({left: 50, top: 100, opacity: 1});
将会发生div.example
淡入(如果还没有)并且只会在左侧位置显示:50,top:100,它将不会动画。为了使其按预期工作,您必须重新排序:
$('div.example').animate({opacity: 1, left: 50, top: 100});
我在FF4和Chrome中测试了这个。这让我感到惊讶,因为我甚至不知道Javascript保证了对象中属性的顺序,而jQuery在他们的文档中没有提到这个要求。所以我的问题基本上是,我做错了什么?这是预期的吗?是否有关于正确订单的文件?这会在所有浏览器中正常工作吗?
我也在使用jQuery UI。我知道这增强了标准的动画方法,允许动画颜色等。这可能是问题吗?
答案 0 :(得分:1)
这是一个jQuery错误:cannot animate position and opacity at same time但在1.6中修复。 1
与此同时,您可以通过在末尾添加“px”来修复它:
$('div.example').animate({top: '100px', left: '50px', opacity: 1});
答案 1 :(得分:0)
您的属性left
和top
是否在css中提前声明了?有些浏览器(webkit,如果我没记错的话)在设置未声明属性的动画时会出现问题。尝试将left
和top
设置为0或其他一些值,看看它是否有效。