2011-10-24 4 views
1

不透明度が0.7のリストアイテムを変更しました。同じリストで、クラスとIDが「アクティブ」のリストアイテムがあります。リストアイテムの不透明度0.7アクティブなアイテムを除いて

アクティブなリストアイテムの不透明度は1ですが、それは機能しません。

これはjQueryのです:

  $("#active").css({ opacity: 1 }); 
      $(".nav_top ul li a").css({ opacity: 0.7 }); 

      $(".nav_top ul li a").hover(function() 
      { 
       $(this).animate({ opacity: 1 }); 
      }, 
      function() 
      { 
       $(this).animate({ opacity: 0.7 }); 
      }); 

これはリストです:

<div class="nav_top"> 
    <ul> 
<li class="active"><a href="#">item 1</li> 
<li><a href="#">item 2</li> 
<li><a href="#">item 3</li> 
<li><a href="#">item 4</li> 
<li><a href="#">item 4</li> 

+0

"同意しますか"?おそらく、あなたは「除外」を意味します(排除する場合と同様ですが、関連しません)。 –

答えて

0
// Global "all are 0.7 opacity" rule 
// exclude the li with the active class though [:not(.active)] 
$(".nav_top ul li:not(.active) a") 
    // change items to 0.7 opacity 
    .css({ opacity: 0.7 }) 
    // and bind to hover 
    .hover(function(){ 
     $(this).animate({ opacity: 1 }); 
    },function(){ 
     $(this).animate({ opacity: 0.7 }); 
    }); 

しかし物事のカップル:

  1. すると、あなたのアンカーを閉じていることを確認します(<a></a>)タグ)
  2. :not()を使用してデactiveクラス<li>

デモはこちらをご覧ください:http://jsfiddle.net/xJF7X/2/

+0

おかげでうまく動作します。 1つの小さな疑問は、今私は、アクティブなアイテムの不透明度が1から0.7に変更するが、私はそれが1になるために変更したくないです。 –

+0

ちょうどあなたのコードを変更しました:$( "。nav_top ul li: (アクティブ)a ")アクティブな部分は変更されません –

+0

@LeonvanderVeen:はい、セレクタだけを変更する必要があります。私はあなたのニーズに合わせて簡潔/簡潔な解決策への私の答えを更新しました。 –

1

あなたはすべてのCSSと少しjQueryの

<div class="nav_top"> 
    <ul> 
     <li class="active"><a href="#">item 1</a></li> 
     <li><a href="#">item 2</a></li> 
     <li><a href="#">item 3</a></li> 
     <li><a href="#">item 4</a></li> 
     <li><a href="#">item 4</a></li> 
    </ul> 
</div> 
でこれを行うことができます

と使用これらのクロスブラウザの不透明度のスタイル:

.nav_top li { 
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; 
    filter: alpha(opacity=70); 
    -moz-opacity: 0.7; 
    -khtml-opacity: 0.7; 
    opacity: 0.7; 
} 

.nav_top li.active { 
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; 
    filter: alpha(opacity=100); 
    -moz-opacity: 1.0; 
    -khtml-opacity: 1.0; 
    opacity: 1.0; 
} 

といくつかのjQuery

// hover on the li, not the a, since the li has the class 
$(".nav_top ul li").hover(function() { 
    $(this).animate({ opacity: 1 }); 
}, function() { 
    $(this).animate({ opacity: 0.7 }); 
}); 
+0

ありがとう、うまく動作します。 1つの小さな疑問は、今私は、アクティブなアイテムの不透明度が1から0.7に変更するが、私はそれが1になるために変更したくないです。 –