HTML テンプレートのナビゲーション バーを作成しようとしています。
ナビゲーション バーには、クラス「ドロップ」を持つリンクの右側に矢印があります。addClass
jQueryには、「ドロップ」クラスがある場合、リンクがホバリングしていないときにそこにとどまる背景矢印を追加するために使用する1行のコードがあります。今すぐコードを参照してください:
HTML:
<nav>
<a href="index.html" class="first">Home</a>
<a href="about.html" class="drop">About Us</a>
<a href="javascript:void(0);" class="drop">Other</a>
<a href="portfolio.html">Portfolio</a>
<a href="http://forcefire.us/">Web Hosting</a>
<a href="contact.html">Contact Us</a>
<a href="javascript:void(0);" class="last"> </a>
</nav>
CSS:
nav {
background: #333;
border-radius: 6px;
border-top: 1px solid #222;
border-bottom: 1px solid #444;
}
nav a {
padding: 15px 15px;
display: inline-block;
color: #888;
font: bold 14px Sansation;
font-weight: bold;
text-decoration: none;
margin: 0 -4px 0 0;
border-left: 1px solid #444;
border-right: 1px solid #222;
}
nav a:hover {
background: #444;
background-image: linear-gradient(bottom, rgb(68,68,68) 0%, rgb(85,85,85) 100%);
background-image: -o-linear-gradient(bottom, rgb(68,68,68) 0%, rgb(85,85,85) 100%);
background-image: -moz-linear-gradient(bottom, rgb(68,68,68) 0%, rgb(85,85,85) 100%);
background-image: -webkit-linear-gradient(bottom, rgb(68,68,68) 0%, rgb(85,85,85) 100%);
background-image: -ms-linear-gradient(bottom, rgb(68,68,68) 0%, rgb(85,85,85) 100%);
background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, rgb(68,68,68)), color-stop(1, rgb(85,85,85)));
}
nav .drop {
padding-right: 20px;
}
nav .drop-d {
background: url(../images/nad.png) no-repeat;
background-position: 94% 50%;
}
nav .drop-u {
background: url(../images/nau.png) no-repeat;
background-position: 94% 50%;
}
jQuery:
$(document).ready(function() {
// Navigation Script
$('nav .drop').addClass('drop-d');
$('nav .drop').hover(
function() {
$(this).removeClass('drop-d').addClass('drop-u');
}, function () {
$(this).removeClass('drop-u').addClass('drop-d');
}
);
});
ここで、クラス 'drop-d' のみを追加する最初の行に矢印が表示されます。しかし、それは問題ではありません。
関数はクラス「drop-d」を削除します.hover()
が、ホバー時にクラス「drop-u」を追加しません。ホバーオフ (クラス「drop-u」を削除するかどうかはわかりません) が、クラス「drop-d」をもう一度追加します。
当たり前のことで申し訳ありませんが、遅くなりました。とにかく、CSSでクラスを永続的に追加してから、ホバーなどでそれを削除する以外に、何が間違っていて、それを書くより良い方法は何ですか?