2

ユーザーの要求ごとにオンザフライでロードする必要がある画像を含むデータベースがあります。画像は、包括的な div コンテナー内の個別の の背景画像として表示されます...画像スクローラーのようなものです。

データベースは現在ローカル データベースですが、これは私の問題ではありません。

問題は、データベースに要求したすべての画像が含まれていない可能性があることです...そして、存在しない1つ以上の画像を取得する可能性があります...そして、データベースの前面と読み込み中の画像の前面では非同期であるため、まあ、存在しない画像を標準のプレースホルダー画像に置き換える方法がわかりません。ロードが発生する前に実行されるため、ループ内でその場で実行することはできません。.Load と .error を使用してみましたが、背景画像でそれを行う方法がわかりません。

これに対処するための標準的で簡単な方法はありますか?

4

2 に答える 2

7

別の DOM elem を作成する必要から逃れることができなかったようです。これが私が今使っているものです:

<div style="background:url(providerSrc)">
<img
     style="display:none" 
       src="providerSrc"
   onerror="this.parentNode.style.backgroundImage='url(fallbackSrc)'"  
   />
</div>

これはhttp://www.daveoncode.com/2010/08/20/image-background-fallback-img-tag-error-handlers/から取得したものです。

「より良い」解決策を知っている場合は、返信してください

于 2012-04-23T17:02:07.827 に答える
0

元の画像の後ろにプレースホルダーを背景画像として配置するとどうなりますか? 画像が存在する場合は、プレースホルダーを覆います。そうでない場合、プレースホルダーを覆うものはなく、表示されます。

于 2012-04-22T07:36:12.020 に答える