私のページにはいくつかの画像があります。画像が読み込まれる前にページのレンダリングが開始されますが (これは良いことです)、視覚効果はあまり良くありません。最初に、ユーザーには次のように表示されます。
--------hr--------
text
次に、数ミリ秒後にページがジャンプして次のように表示されます。
--------hr--------
[ ]
[ image ]
[ ]
text
画像自体が読み込まれるまで、画像が占める幅と高さの正確な幅と高さの灰色の背景画像を表示できる簡単な方法はありますか?
複雑な要因は、画像の高さと幅が事前にわからないことです。それらはレスポンシブでwidth: 100%
、含まれている div に設定されているだけです。これは HTML/CSS です:
<div class="thumbnail">
<img src="myimage.jpeg" />
<div class="caption">caption</div>
</div>
img { width: 100% }
基本的な問題を説明する JSFiddle を次に示します: http://jsfiddle.net/X8rTB/3/
私はLazyLoadのようなものを調べましたが、もっとシンプルで非 JS の答えがあるに違いないと感じずにはいられません。それとも、画像の高さが事前にわからないという事実は克服できない問題ですか?画像の縦横比はわかります。