属性顺序与jQuery动画有关系吗?

时间:2011-05-16 09:27:39

标签: javascript jquery jquery-ui jquery-animate

刚刚花了太多时间调试为什么我的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。我知道这增强了标准的动画方法,允许动画颜色等。这可能是问题吗?

2 个答案:

答案 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)

您的属性lefttop是否在css中提前声明了?有些浏览器(webkit,如果我没记错的话)在设置未声明属性的动画时会出现问题。尝试将lefttop设置为0或其他一些值,看看它是否有效。