为什么javascript执行会影响firefox中的css动画和动画gif

时间:2013-10-17 11:47:47

标签: javascript jquery css3 firefox

当我处理异步数据加载时,我总是会遇到一个很大的问题,例如:用javascript的图像。 在过去,我放置了一个装载程序,向用户显示正在进行的操作。 但是在加载数据时,图像将无法正常生成动画。它一直在逆转,但仅限于Firefox浏览器。

同样的问题是css3动画,例如轮换。

为什么会这样?

var imgUrl = 'http://photojournal.jpl.nasa.gov/jpeg/PIA13932.jpg';
var aImagesToLoad = [];
var iLoaded = 0;
var runs = 3;

$(document).on('click', 'a#init-load', function(event) {
    event.preventDefault();
    if (confirm('A big image is loaded three times now')) {
        var i, j;
        var self = $(this);

        self.fadeOut(500);  
        $('img').addClass('show');

        for ( i = 0; i < runs; i += 1) {
            var ts = new Date().getTime();

            aImagesToLoad.push(new Image());
            aImagesToLoad[aImagesToLoad.length - 1].onload = function(load) {
                iLoaded += 1;

                if (iLoaded === runs - 1) {
                    $('img').removeClass('show');
                    self.fadeIn(500);
                }
             };

             aImagesToLoad[aImagesToLoad.length - 1].src = imgUrl + '?uq=' + (ts + i);
         }
    }
});

制作一个带有ajaxloader图像(动画gif)和css旋转动画的jsfiddle。哪里可以测试。

1 个答案:

答案 0 :(得分:0)

您需要在样式表中添加 transalte3d(0,0,0),以便启动硬件加速渲染:

例如尝试:

transform: scale(1) rotate(359deg) translate3d(0,0,0.1);

translate3d()属性告诉浏览器使用硬件加速来实现更流畅的动画

#css-ajaxloader {
    transform: scale(1) rotate(0deg) translate3d(0,0,0.1);
} 

我也在默认情况下指定比例,因此浏览器不会继承任何其他比例..因为我们希望比例的默认值为1 ..正常大小

如果浏览器支持,

Z 添加到 0.1 将启动硬件加速

试试