【问题标题】:Why does javascript execution affect css animation and animated gif in firefox为什么javascript执行会影响firefox中的css动画和gif动画
【发布时间】:2013-10-17 11:47:47
【问题描述】:

当我处理异步加载数据时,我总是会遇到一个大问题,例如带有 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。在哪里可以测试。

【问题讨论】:

  • 最新版本的 FireFox 对我来说没问题。
  • @TigOldBitties 在新的 MacbookPro Retina 上使用最新的 Firefox,并与 Webkit 浏览器进行比较。
  • 对我来说似乎是浏览器问题。
  • @TigOldBitties 这是一个没有任何插件的普通火狐
  • 我在最新的 firefox 24 上没有看到这个问题.. 当我拿出你的 confirm() 时它也加载得很好.. jsfiddle.net/esAGA/11 -

标签: javascript jquery css firefox


【解决方案1】:

您需要在样式表中添加 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 将启动硬件加速

试试看

【讨论】:

  • 当我在 firefox 24 中运行它并禁用 firebug 时,它的动画效果很好
  • 非常感谢。你说得对。运行得更好,但在 webkit 中它似乎运行得更顺畅,但我认为这是 mozilla 的原因。
  • 你听说过 GSAP。它是一个很棒的动画平台,比 jQuery 更好地动画元素和 CSS 属性。greensock.com/gsap-js ..
猜你喜欢
  • 2012-04-28
  • 1970-01-01
  • 2013-02-28
  • 2012-09-16
  • 2013-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
相关资源
最近更新 更多