我正在尝试使用 Velocity.js 和 Modernizr 为基于 CSS3 的动画包含 Microsoft Internet Explorer 8 的 JavaScript 后备。这是我正在开发的网站(这是一个关于跨浏览器兼容性的案例研究)。
我就是这样做的。
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="js/modernizr.custom.js"></script>
<script type="text/javascript">
Modernizr.load([{
test: Modernizr.csstransforms && Modernizr.csstransforms3d && Modernizr.cssanimations,
nope: ['http://cdnjs.cloudflare.com/ajax/libs/velocity/1.2.2/velocity.min.js', 'js/animatie.js']
}]);
</script>
Modernizr 测试(csstransforms、csstransforms3d 和 cssanimations)都返回一个合乎逻辑的答案 - IE 中的“no-xxx”。nope 数组中提到的文件都在这种情况下加载。
animatie.js 文件的内容如下。
$(document).ready(function(){
$('div#tandwiel').velocity({
rotateZ: '360deg'
},
{
duration: 10000,
easing: 'linear',
loop: true
});
});
我很确定 jQuery 代码是正确的,因为输出到控制台会产生可预测的结果。我也很确定 Velocity.js 已加载,因为像 opacity 这样的枯燥属性动画实际上在每个浏览器中都有效。
在 Velocity.js 文档中,我发现它实际上并不需要 jQuery 来执行它的魔力,但它应该包含在 IE8 中以使其工作。
我排除了一些事情。
- 它几乎不可能是语法错误。查了三次。
- 它与加载顺序没有任何关系。加载 animatie.js 文件时似乎加载了 jQuery。yepnope 库也尊重所提及文件的顺序。
- 不可能是 Velocity.js,因为作者比我聪明得多,而且没有太多抱怨它在 IE8 中不起作用。
(我知道,旋转齿轮不会影响或破坏用户体验,但我想知道这里发生了什么)。
任何帮助是极大的赞赏。