ここにメニューバーを添付しました。私のWebページは完全にスクロールバーのページシフトタイプです(つまり、メニュー項目をクリックするとスクロールできる6ページを含む単一のページ)。メニュー項目をクリックしている間、メニュー項目のハイライトは添付の画像のようになります。現在のページでは、単一のメニュー項目のハイライトを使用していますが、ここでは、4番目のメニューをクリックしてから現在のページをクリックする必要があります。以前のすべてのメニュー項目を含むメニュー項目も強調表示する必要があります。これを続行するにはどうすればよいですか?
質問する
517 次
2 に答える
2
このマークアップの仮定:
<span class="menuitem">Howdy</span>
<span class="menuitem">Howdy</span>
<span class="menuitem">Howdy</span>
<span class="menuitem">Howdy</span>
<span class="menuitem">Howdy</span>
このCSS:
.menuitem{border-bottom: 4px solid #888888;}
.menuActive{border-bottom: 4px solid blue;}
このコード:
$('.menuitem').click(function(){
$('.menuitem').removeClass('menuActive');
$(this).prevAll().andSelf().addClass('menuActive');
});
このフィドル: http: //jsfiddle.net/vE6yW/
編集:jQueryバージョン1.8および1.9以降に関連します。
jQueryバージョン1.8では、addBack()
メソッドが作成され、バージョン1.9ではandSelf()
削除されました。jQuery 1.8以降の場合は、以下を使用してください。
$('.menuitem').click(function(){
$('.menuitem').removeClass('menuActive');
$(this).prevAll().addBack().addClass('menuActive');
});
このコードでは、効果は同じです。 addBack()
また、必要に応じて選択グループに追加される要素を減らすためのセレクターを実装しました。
于 2012-12-21T20:38:43.003 に答える
0
私は刺し傷を取り、これがあなたが望むものに近いと仮定します:http: //jsfiddle.net/cxndW/
効果を出すために塗りつぶしの境界線を使用していますが、背景画像または境界線画像でそれを実行できるはずです。
HTML
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
<li>four</li>
<li>five</li>
</ul>
CSS(完全に汎用的であることに注意してください。これをより具体的にするには、クラスまたはIDを使用する必要があります):
ul{
overflow:hidden;
margin:1em;
float:left;
}
li{
float:left;
padding:.1em 0;
border-bottom:solid 5px #ccc; /* base state, grey */
cursor:pointer;
}
li + li{
padding-left:1em;
}
ul:hover li, /* all list items when the ul is hovered */
ul.active li, /* or all list items when the ul is "active" */
ul.active:hover li{ /* an override for below */
border-bottom-color:#34f; /* become blue */
}
li:hover ~ li, /* all list items after the hovered list item */
ul li.active ~ li, /* all list items after the active list item */
ul.active:hover li:hover ~ li{ /* an override for when the list is active and hovered */
border-bottom:solid 5px #ccc; /* back to grey */
}
デモには、クリックしたときにliクラスをアクティブに設定する(アクティブなliクラスを互いにクリアする)簡単なjQueryもあります。
于 2012-12-21T20:48:13.837 に答える