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」とサファリ(winXPの場合)にあります:ffで、つまり私は持っています問題ありません。アニメーション gif がはっきりと見えます。サファリでは見えません。(明らかに静的な)pngで画像を変更すると、画像が表示されます...何か間違っていますか?サファリの何が問題なの?

4

3 に答える 3

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 ナイトリーの両方で、GIF はどこかに描画されていない限りアニメーション化しません。アニメーション GIF が非表示になると、アニメーションが一時停止し、アニメーションによって CPU が消費されることはありません。したがって、背景タブ内のすべてのアニメーション画像は、そのタブ内のページが表示されるまでアニメーション化されません。前景ページであっても、アニメーション GIF が画面外にスクロールされると、再び表示されるまでアニメーションが停止します。

アニメーション GIF での Safari の CPU 使用率は非常に良好です。(しばらくの間、MacNN の読者は、フォーラムの投稿の入力が遅いため、Safari には「アニメーション GIF 問題」があると考えていましたが、そのバグは実際には、ページの上部と下部にある Flash 広告に関係していました。)

于 2010-04-06T14:53:22.087 に答える
0

多分それはあなたのgif画像ですか?http://www.ajaxload.info/で作成された gif を使用して Windows の Safari 4.0.4 でコードを起動したところ、問題なく動作しました。

于 2010-04-06T15:03:46.060 に答える