0

Web サイトにナビゲーション バーがあります。以下はcssを使用したコードです

CSS

#navbar
{
width : auto;
height : 80px;
margin:15px 0px 0px 400px;
float:left;
}

#navbar ul
{
margin:0px;
padding:0px;
display:inline;
}

#navbar ul li
{
list-style:none;
float:left;
display:inline;

}

#navbar ul li a {
float:left;
display:inline;
font-family:arial;
font-size:16px;
font-weight:bold;
color:#505050;
margin: 20px 10px 0px 10px ;
padding : 5px;
width : 90px;
text-align:center;
border-radius:3px;
text-decoration:none;
}

#navbar ul li a:hover
{
background : #C84A30;
color:white;
}

#navbar ul li a.current {
background : #1D78B8;
color:white;
}

HTML

<div id="navbar">
<ul>
<li><a href="#" class="current">Home</a></li>   
<li><a href="#">About Us</a></li>
<li><a href="#">Products</a></li>
<li><a href="#">Contact Us</a></li>    
<li><a href="#">Login</a></li>
</ul>
</div> 

これは私が使用しているJqueryです

$(document).ready(function(){
$("#navbar ul li a").hover(function() { 
$(this).animate({ backgroundColor: "#C84A30" }, 100); 
}, function() {
$(this).animate({ backgroundColor: "transparent" }, 300); 
});
})

私が欲しいのは、ユーザーがナビゲーションバーのアイテムにカーソルを合わせるたびに、背景色が赤い色でアニメーション化されることです。ただし、これは現在のアイテムにも適用されます。現在のクラス。現在のクラスがjqueryの影響を受けることは望ましくありません。

例: 現在のページがホームページである場合、ホーム タブは css current class で変更されます。ユーザーが他のタブ、つまり About us にカーソルを合わせたとき。背景は赤い色にアニメーション化する必要がありますが、ホームタブは影響を受けません。

助けてください

4

1 に答える 1

3

これを試してください...使用して.not()

$(document).ready(function(){
    $("#navbar ul li a").not(".current").hover(function() { 
         $(this).animate({ backgroundColor: "#C84A30" }, 100); 
    }, function() {
         $(this).animate({ backgroundColor: "transparent" }, 300); 
    });
})

リンクデモ

于 2013-04-11T06:44:00.307 に答える