7

当您单击停止按钮或通过 Escape 键调用它时,Firefox(和我相信的其他浏览器)会停止 gif 动画。

我有一个文本输入,在更改时会发出 ajax 请求来更新其他元素。作为这种 ajaxyness 的一部分,我有一个动画 gif 来显示反馈。
我还在此输入中捕获了转义键,以便清除文本字段以获得更好的用户体验。

我的问题是在按下一次转义键后,在刷新页面之前,没有任何 ajax gif 动画。有谁知道解决方法?


我试过的东西:

我在处理 and 的函数中尝试了e.stopPropagation();and ,但这似乎不起作用。我怀疑这会停止触发更多的 js 事件,并且浏览器会捕获转义,而不管 js 活动如何。e.cancelBubble = true;e.keyCode == 27

我通过添加/删除 css 类来显示/隐藏 gif,因此很难应用“更改 gif url 以重置”解决方法。我什至不知道这是否有效 - 没有测试它。但这似乎很难。如果有人知道这可行并且知道使用background-image: url(../images/ajax-loader_dotcirclel13x13.gif);css 应用 hack 的简单方法,请告诉我。

4

5 回答 5

9

不幸的是,您无法覆盖按下 ESC 键时浏览器停止动画 gif 的事实。我认为这是为了让用户总是有能力停止烦人的动画 gif,如果它们变得过于强大(我并不是说你的加载 gif 很烦人;))。本页描述了如何在 FF 中一起禁用它们。

我建议使用 JavaScript 创建一个简单的动画。您甚至可以使用包含 gif 动画中所有帧的精灵来完成此操作,并且只需移动每个帧的背景位置。

于 2010-08-24T06:24:18.117 回答
4
$(document).keydown(function(event){
    if (event.keyCode == 27) {
        //FIXES FIREFOX GIF STOPPING
        event.preventDefault();
    }
});
于 2012-02-13T09:36:56.203 回答
0

唔。您是否考虑过使用一个小的“请稍候”Flash 动画来代替?

严重地。就粗略的测试显示,Flash 忽略了该Esc键。

甚至可以将动画 GIF 导入 Flash 电影。我不知道。

您可以使用 JavaScript 创建一个非 Flash 回退(改为显示原始动画 GIF)。

于 2010-05-26T10:30:57.853 回答
0

有同样的问题。将我的动画 GIF 转换为 CSS 并解决了问题。该网站允许您构建高级 css 动画http://cssload.net/ 希望对您有所帮助!

于 2013-06-22T07:03:10.103 回答
0

好的,第二个想法:将loadingGIF 放入单独的 HTML 文档中,并IFRAME以无边框的小尺寸显示。

不过,我知道它是否会起作用。很有可能“取消”命令也会传播到所有子 IFRAME,因此很可能不会。

于 2010-05-26T10:37:46.683 回答