在刚刚花了太多时间调试为什么我的 jQuery animate()
调用停止正常工作之后,我意识到我的问题是 animate()
调用中的属性有以特定顺序排列。所以以下将不正常工作:
$('div.example').animate({left: 50, top: 100, opacity: 1});
div.example
会淡入(如果它还没有淡入)并且 刚好出现 在位置 left:50, top:100,它不会动画。要使其按预期工作,您必须重新排序:
$('div.example').animate({opacity: 1, left: 50, top: 100});
我在 FF4 和 Chrome 中对此进行了测试。这让我很惊讶,因为我什至不知道 Javascript 保证对象中属性的顺序,而 jQuery 在他们的文档中没有提到这个要求。所以我的问题基本上是,我做错了什么吗?这是预期的吗?是否有关于正确顺序的文件?这会在所有浏览器中正常工作吗?
我也在使用 jQuery UI。我知道这增强了标准动画方法以允许动画颜色等。这可能是问题所在吗?
最佳答案
这是一个 jQuery 错误:cannot animate position and opacity at same time但已在 1.6.1
中修复在此期间,您可以通过在末尾添加“px”来修复它:
$('div.example').animate({top: '100px', left: '50px', opacity: 1});
关于javascript - jQuery animate 的属性顺序很重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6015366/