2012-01-16 22 views
6

バックグラウンド画像をクリックすると、ウェブサイトのタブがいくつか表示されます。CSSの背景画像を読み込むときに遅延が発生する

DOMをロードした後に最初にタブにカーソルを合わせると、ホバーイメージが表示されるまで少し時間がかかり、つまらない結果になります。

私はこの問題の解決方法を知りません。 :)

ライブ例:http://jsfiddle.net/timkl/fjupq/ - 遅延はJSFiddleのサーバーではそれほど長くありませんが、まだそこにあります。

答えて

11

これを解決するには、別々の画像の代わりにスプライトを使用します。あなたは、単一のイメージを使用し、代わりに:hoverの背景ソースを変更するので、あなたは、単に背景位置を変更

。このようにして、画像全体が予めロードされる。

たとえば、スタックオーバーフローのスプライトシートをチェックアウト:

をあなたはこの極端にそれを取る必要はありません、あなただけの通常の両方を持って一つの画像を持つことができますおよび:hoverの状態を左右または上/下に移動します。

3

単純な解決策は、画像をプリロードするためにjavascriptを使用することです。これをページのHEADに含めてください:

<script type="text/javascript"> 
    var img = new Image(); 
    img.src = "http://dummyimage.com/200x10/000000/fff"; // background image 
</script> 
関連する問題