CSS のホバー状態を定義するとき... & ホバー状態で、background:url('image path');
この画像がプリロードされるかどうかを変更します。要素の最初のホバーでダウンロードされます..そうであれば、それをプリロードする方法...私は知っています画像をプリロードするためのJavaScript..それはうまくいくでしょうか...
4 に答える
たとえばdiv
、高さが20px
あり、ホバー時に背景画像を変更したい場合は、ホバーなしとホバーの両方のグラフィックを含む画像を使用し、ホバーなしを上部に、ホバー画像を下部に配置します. どちらの部分も div の高さ、この場合は 20px にする必要があります。background-position
次に、最初にCSSを0px 0px
(左上) に設定します。これはデフォルトです (ホバーなし)。
ユーザーが にカーソルを合わせたら、を(20px 上)div
に設定します。これにより、背景画像が 20 ピクセル上に移動し、ホバー グラフィックであるスプライトの下半分が表示されます。div からマウスを離すと、スプライトは元の位置に戻ります。background-position
0px -20px
CSS:
.hoverDiv /* 通常状態 */ { 背景: url('images/img.png'); 背景位置: 0px 0px; } .hoverDiv:hover /* ホバー状態 */ { 背景位置: 0px -20px; /* 背景を 20 ピクセル上に移動し、上部の画像を非表示にします */ }
div
高さが異なる場合20px
は、div の高さでビットを変更するだけです。
background-position: -20px 0px;
スプライトが上下ではなく横に並んでいる場合は、代わりに を使用して X 軸を移動し0px -20px;
ます。もちろん、背景も積極的に動かすことができます。
お役に立てれば、
ジェームズ
ホバー状態の画像をプリロードするのではなく、ホバーされている状態の画像のみをロードすることを避けたい場合は、通常の画像とホバー画像の両方を保持するスプライトを作成してみませんか? そうすれば、すべてのホバー状態の画像が既に読み込まれていることを確認でき、同時にすべてのリクエストのオーバーヘッドを削減できます。background-position
後は、属性の値を設定するだけです。
最初の質問については、答えを見つける最善の方法は、2 つの大きな画像を使用して (2 枚の壁紙でうまくいくでしょう)、自分でテストすることだと思います。元の画像は、コードが実行されているためです。
お役に立てれば !
CSSスプライトを使用できます
最善の方法は、CSS スプライトを使用することです。スプライト シートは、内部に多数の画像を含む大きな画像であり、サイトで使用されます。メリットは何ですか?これは、すべての画像をダウンロードするために 1 つの http 要求のみが送信されることを意味します。したがって、サイトの読み込みが少し速くなります。
ホバー効果でうまく機能します!
シンプルなコードに加えて、はるかに使いやすくなっています。JavaScript とは異なり、乱雑で恐ろしいコードがあります。学ぶのはとても簡単です。スプライト内の画像の位置に基づいています。Flowdevに関する便利なチュートリアルを次に示します。W3Schoolsの例を次に示します。