私は、ナビゲーション内のすべてがホバーされている要素以外が0.3の不透明度でフェードアウトする、フェードナビゲーションシステムを実現しようとしています。
同時に、クリックされた要素 (またはこの場合はアクティブなサブページ) がフェードアウトしないように、クリックの「値」を大きくしたいと考えています。私が持っているコードを投稿するだけです。
<nav id="main">
<ul>
<li>
<a>work</a>
</li>
<li>
<a>about me</a>
</li>
<li>
<a>contact</a>
</li>
</ul>
</nav>
そして、それを輝かせるスクリプト:
var nava = "nav#main ul li a";
$(nava).hover(function(){
$(nava).not(this).removeClass().addClass("inactive");
$(this).addClass("active");
});
$(nava).click(function(){
$(this).removeClass().addClass("active");
});
});
そしてクラス/ css(less):
.inactive{color:@color2; border-bottom:0 solid #000;}
.active{color:@color1; border-bottom:1px ソリッド #000;}
nav#main ul li a{color:@color1;}
基本的に、ホバー状態はクリックよりも優先されますが、これは発生したくありません。
理想的には、すべてのアンカー要素を保持している順序付けられていないリストからマウスオーバーすると、すべてのアンカー要素が元の状態に戻るようにしたいと考えています。誰かがこれについていくつかの指針を持っているなら、それは大歓迎です。乾杯!
編集: Christian Varga への返信 - ご指摘の点はわかりますが、私がやろうとしていることは次のとおりです。
デフォルトの状態: 不透明度 1
ホバー状態: 不透明度 0.3 (ホバーされた要素を除くすべての要素で、ホバーされた要素は不透明度 1 のままです)
Clicked(Active) State : Opacity 1 (他のリンクがクリックされた要素の前述の不透明度をオーバーライドしない場合)。
Mouseout (コンテナから) : リンクがクリックされていない (アクティブな) 場合を除いて、すべての不透明度 1 です。
元の説明をお詫びします。