Velocity.js在IE8中无法工作。

3

我正在尝试为使用Velocity.js和Modernizr的基于CSS3的动画在Microsoft Internet Explorer 8中包含JavaScript回退。这是我正在工作的网站(这是有关跨浏览器兼容性的案例研究)。

http://bit.ly/1G03UMo

这就是我做的方式。

<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>

现代浏览器检测(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已经加载,因为在每个浏览器中都可以实现像不透明度这样的简单动画效果。
在Velocity.js文档中,我发现它实际上不需要jQuery来执行其魔法,但应该包含它以使其在IE8中工作。
我排除了一些可能性:
- 它几乎不可能是语法错误。检查了三次。 - 它与加载顺序无关。当animatie.js文件被加载时,jQuery似乎已经被加载。yepnope库也遵循所提到的文件顺序。 - 不能是Velocity.js的问题,因为作者比我聪明多了,在IE8中没有太多抱怨它不起作用。
(我知道,旋转齿轮不会决定用户体验的成败,但我想知道这里发生了什么)。
非常感谢任何帮助。
1个回答

1

SCRIPT5022: Velocity: IE8及以下版本要求在Velocity之前加载jQuery。 文件: velocity.min.js, 行: 3, 列: 9801

当在问题链接中打开时,IE8的控制台会显示此内容。
您是否尝试通过modernizr加载jquery?

    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'],
        both: ['http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js']
    }]);

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