【问题标题】:Animated gifs not restarting in Firefox (with examples)动画 gif 在 Firefox 中未重新启动(带有示例)
【发布时间】:2014-04-15 09:57:28
【问题描述】:

问题描述:

在许多情况下,动画 gif 在 Firefox 中似乎无法正常重新启动。这是我只在 Mozilla 中遇到的问题,没有其他浏览器。

例如,为什么this 总是重启它,而this 却没有?在后者中,gif 清晰地被缓存并在后台永远循环,所以当你调用 .show() 时,它会出现在动画中间的某个随机点。

我怎样才能实现我在第二个小提琴中尝试做的事情,并在每次隐藏它时强制重新启动 gif?不,我不想每次都重新下载整个 gif,所以将'?random=' + Date.now() 附加到图像不是解决方案。

来自Link #1的代码:

$('#still, #animated').click(function() {
    animated.attr('src', "");
    animated.attr('src', srcToGif);
});

来自Link #2的代码:

$('#still, #animated').click(function() {
    if (!clicked) {
        clicked = 1;
        animated.attr('src', "");
        animated.attr('src', srcToGif);
        animated.show();
        setTimeout(function() {
            animated.hide();
            clicked = 0;
        }, 9500);
    }
});

【问题讨论】:

  • 你的意思是这样做吗?- jsfiddle.net/QSZ23/2
  • 我希望 gif 在每次单击时完全完成一次(因此是标志),然后隐藏自身,以便静止图像再次位于顶部。然后再次单击静止图像后,从头开始重新启动 gif。它被非常清晰地缓存,因为即使在您的示例中,如果您玩得足够多,您可以在单击后从随机点开始观察 gif。为了比较并了解它应该如何工作,请访问我在 Chrome 或 IE 中的第二个链接。
  • 我想我和你在一起(但我想会很棘手,因为 9500 可能并不总是与浏览器帧速率同时发生(例如,当时可能是 cpu 高) - 这个例子是否给出还有更多想法吗?-jsfiddle.net/4L2nS/2
  • 另一个尝试帮助缓存(这里没有看到 - 足以说明) - jsfiddle.net/3gaAM/3(希望我能提供帮助)
  • 这似乎是 Firefox 中已有数十年历史的错误。 bugzilla.mozilla.org/show_bug.cgi?id=129986

标签: javascript jquery html firefox caching


【解决方案1】:

替换

animated.attr('src', "");

animated.removeAttribute('src');

在 Firefox 30 中为我工作。 假设单词 animated 是一个正常的、非 jquery 特定的 img 引用。

我一般不做 js 库,因为我想拥有控制权。由于库的庞大,缩小通常是虚幻的,当确实发生怪癖时,很难排除故障。

【讨论】:

    猜你喜欢
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 2011-03-26
    • 2011-03-25
    • 2013-11-18
    • 2011-11-25
    • 2014-04-04
    相关资源
    最近更新 更多