これを使用して、画像の読み込みを遅らせています:
HTML:
<img src="loading.gif" delayedSrc="url/to/real/image.png" />
jquery:
image.attr('src', currentImage.attr('delayedSrc'));
フェードインしたい場合は、loading.gif から実際の画像に切り替えるだけでなく、読み込みが完了したときに、次のことを試しました。
image.attr('src', currentImage.attr('delayedSrc')).load(function() {
image.hide().fadeIn(1000);
}
画像がまだキャッシュされていない場合、これは正常に機能します (iamge ショーをロードすると、実際の画像がフェードインします)。ただし、問題は、画像が既にキャッシュされている場合、ページの読み込み時に表示され (読み込み中の画像は表示されません)、非表示になり、再びフェードインされて、かなり醜いように見えることです..
どうすればこれを解決できますか? 私の考えは、画像がキャッシュされているかどうかを確認し、キャッシュされていない場合にのみフェードインを実行することでした...結局のところ、読み込み中の画像と実際の画像の間の移行をよりソフトにするためにフェードが必要なだけです。しかし、どうすればこれを確認できますか?またはより良い解決策はありますか?