1

ページの読み込み時に CSS で非表示にしている間、一部の画像をフェードインしたい (display: none;)。
これは Firefox、Chrome、Safari、 Opera (最終バージョン: 12.12) で正常
に動作 し、img はランダムに表示されます...

Jquery コードは次のとおりです。

$(document).ready(function () {
        $('img:hidden').load(function () {
            $('img:hidden').fadeIn(1000);
        });
    });

Opera でランダムに動作している理由を知っている人はいますか?

ありがとう

4

2 に答える 2

1

まず第一に、画像が表示されている場合、「ロード」イベントがより適切にトリガーされます。さらに、私自身の経験から、場合によっては (IE など)、次のトリックが問題の解決に役立ちます。

$(document).ready( function() {

  if ( $.browser.opera ) {
    $('img:hidden').each( function() {
      $('img:hidden').fadeIn(1000);
    });
  }
  else {
    $('img:hidden').load( function() {
      $('img:hidden').fadeIn(1000);
    });
  }

});
于 2013-01-30T08:56:48.377 に答える
0

まあ、jQuery Docu の該当するメモを見逃すことはできません。フォントサイズは500pxのようです...大きすぎて認識できないのではないでしょうか? ;-D

画像で使用する場合の load イベントの注意事項

開発者が .load() ショートカットを使用して解決しようとする一般的な課題は、画像 (または画像のコレクション) が完全に読み込まれたときに関数を実行することです。これには注意すべき既知の警告がいくつかあります。これらは:

クロスブラウザーで一貫して確実に動作しない

画像の src が以前と同じ src に設定されている場合、WebKit で正しく起動しません。

DOM ツリーを正しくバブルアップしない

ブラウザのキャッシュに既に存在する画像の起動を停止することができます

于 2013-01-30T08:51:42.210 に答える