シンプルな画像のロールオーバーを作成しようとしているだけですか? 実際の例を見ないと、あなたが何をしようとしているのか正確にはわかりませんが、画像のロールオーバーは CSS スプライトを使用して簡単に行うことができ、jquery は必要なく、これにより防弾 Web サイトが大幅に強化されます。また、デフォルトの画像とオーバー状態の画像が同じ画像であり、プリロード コードが必要ないため、Web サイトの応答が速くなります。
(完全なスワップアウトではなく)マップされた画像が必要な場合は、背景画像、コンテナ div、および png-24 グラフィックス(png-24 を IE6 で動作させるには JavaScript が必要ですが、IE6 のサポートを気にする必要はありません)で実現できます。とりあえず?)。
JavaScript に頼らずにナビ画像を変更する良い方法は、以下のように background-position プロパティを使用することです。
// define your container element
#nav-home {
margin: 20px 5px;
height: 15px;
width: 40px;
}
// use a descendant selector to style the <a> tag
#nav-home a {
background-image: url("/images/buttons-nav.gif");
display: block; // THIS IS VERY IMPORTANT!!
background-position: 0 0; // the first number is horizontal placement, the second is vertical placement. at 0 0 it is positioned from the top left corner
height: 15px;
}
// this is where you change the position of the background for the hover state
#nav-home a:hover {
background-position: -20px 0; //this moved it 20px to the right
}
html コードは次のようになります。
<div id="nav-home"><a href="/yourlink/"><img src="/images/transparent.gif" alt="home" height="100%" width="100%;"></a>
<!-- uses a 1px transparent gif to "hold" the place of the actual clicked item -->
画像には、実際には次のようにオンとオフの両方の状態が含まれます。( http://www.w3schools.com/css/tryit.asp?filename=trycss_sprites_hover_navのコード例)。基本的に、コンテナ div を使用してウィンドウを作成し、実際の背景画像の一部のみを表示しています。
また、すべてのブラウザーがブロック レベル要素での :hover の使用をサポートしているわけではないため、タグ以外で :hover を使用しないでください。