【发布时间】: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