jQuery 1.10导致Chrome浏览器中的CSS3动画失败

3
这将在火狐上运行,但在谷歌浏览器上不会,如果你移除了 jQuery,它将在谷歌浏览器上运行。
演示: http://jsbin.com/eFUfILI/3/

2
似乎jQuery 1.9.0到1.10.2在Chrome中破坏了那个示例。1.8.3和2.0+可以正常工作。也许有人会知道Webkit或jQuery 1.9-1.10中到底是什么导致了这个问题。不确定这是否阻止您在某些方面前进,但如果失去一些IE兼容性并不重要,您可以尝试切换到1.8.3或2.0+。 - chucknelson
1
我以为我疯了 - 但今晚我在JQM上遇到了同样的问题,花了几个小时来解决它。然后我更新了Chrome,问题就消失了。 - imaginethepoet
1
我所发现的是动画本身没有问题,而是相对大小计算错误。将它们更改为静态值(例如,从translateX(100%)更改为translateX(300px))可以修复该错误。 - Konrad Dzwinel
@imaginethepoet。最好更新你的jQuery版本,因为通过告诉别人升级他们的浏览器来修复代码是不可行的。向后兼容性是关键! - Epiphany
我相信我可能在Chrome的开发频道上,而不是发布频道上 - 这可能会产生一些影响。而且,信不信由你,有些人需要告诉他们升级浏览器 :) 你知道自己是谁,还在使用15个版本之前的Firefox! - imaginethepoet
1个回答

0
如果我面对这种情况,我会首先编写一个浏览器嗅探器,然后根据嗅探器返回的浏览器属性通过运行条件来动态加载正确版本的jQuery,针对你创建的数据数组指定哪个浏览器(不仅仅是Webkit)与哪个版本的jQuery兼容。
我不会在这里为你编写所有代码,因为如果你想让它正常工作,那需要一些工作量...只是编译用于比较数组的数据!你还需要先了解浏览器嗅探的工作原理。你可以在SO上找到更多相关信息。
多年来,我已经非常成功地使用了这种方法...特别是在IE对我们程序员非常不友好的时代。如果您需要跨平台和向后兼容,这确实是唯一的方法。
你也会在自己的jQuery代码中遇到问题,因为有很多函数在短时间内被弃用或替换了。例如,长期使用的'.attr()'已被弃用并替换为'.prop()'。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接