1

我有一个像这样的javascript“加载”函数:

function splashScreen() {
    var div = document.createElement('div');
    div.appendChild(document.createTextNode("some text"));
    div.style.position = "fixed";
    div.style.width = "100%";
    div.style.height = "100%";
    div.style.left = "0";
    div.style.top = "0";
    div.style.zIndex = "1000";
    div.style.background = "white url('img/ajax-loader.gif') no-repeat center";
    div.style.fontSize = "x-large";
    div.style.textAlign = "center";
    div.style.lineHeight = "3em";
    div.style.opacity = "0.75";
    div.style.filter = "alpha(opacity=75)"; // fix ie
    document.body.appendChild(div);
    return true;
}

我在表单操作()中使用此功能onsubmit="return splashScreen()"来显示“旋转徽标”,同时加载下一页...问题在于“img/loading.gif”和 safari(在 winXP 上):在 ff 中,即我有没问题,我清楚地看到了动画 gif。在野生动物园我看不到它。如果我用(显然是静态的)png 更改图像,图像就会出现......我做错了什么吗?野生动物园有什么问题?

4

3 回答 3

0

也许这是你的gif图像?我刚刚在 Windows 下的 Safari 4.0.4 上启动了您的代码,并在http://www.ajaxload.info/上创建了一个 gif,并且运行良好。

于 2010-04-06T15:03:46.060 回答
0

Safari 不能很好地处理动画背景。我在某处看到过关于此的错误报告。

为什么不只使用图像而不是背景?

于 2010-04-06T14:52:19.577 回答
0

我个人对这个问题并不熟悉,但我能够在网上找到一些类似的错误报告。你还在这个页面上做什么?当您遇到此问题时,您是否将注意力集中在页面上?显然,动画 GIF 的处理非常复杂:

http://webkit.org/blog/96/background-music/
http://www.quirksmode.org/bugreports/archives/2004/12/animated_gifs_u.html
https://bugs.webkit.org/show_bug.cgi ?id=7320

第一个链接中特别相关的片段:

在 Safari 2 和 WebKit nightlies 中,除非在某处绘制,否则 GIF 不会动画。如果动画 GIF 变得不可见,则动画将暂停并且动画不会消耗 CPU。因此,在该选项卡中的页面变得可见之前,背景选项卡中的所有动画图像都不会动画。如果动画 GIF 即使在前景页面上也滚动到屏幕外,它将停止动画,直到它再次可见。

Safari 对动画 GIF 的 CPU 使用率非常好。(有一段时间,MacNN 的读者认为 Safari 存在“动画 GIF 问题”,因为在论坛帖子中输入速度很慢,但这个错误实际上与页面顶部和底部的 Flash 广告有关。)

于 2010-04-06T14:53:22.087 回答