CSSTRICKS からコードの一部を取得しました。このマジック ライン ナビゲーションは、メニュー項目の下に行を配置し、ホバーした項目の上に移動します。メニューをクリックすると、行はそのメニュー項目にとどまり、通常のように最初の項目には戻りません。
このスクリプトは、クラス セレクターを使用して、デフォルトで行が移動する場所を示します。それで、クリックされたメニュー項目にクラスを渡す jQuery で toggleClass を実行しましたが、更新されません。更新するには、ページをリロードする必要があります。そして、また同じ位置で固まっています。誰かがこれを行う方法を知っていることを願っています。これが私のコードです:
$(window).bind("load", function () {
var $el, leftPos, newWidth;
$mainNav2 = $("#example-two");
/*
EXAMPLE ONE
*/
/* Add Magic Line markup via JavaScript, because it ain't gonna work without */
$("#line-menu").append("<li id='magic-line'></li>");
/* Cache it */
var $magicLine = $("#magic-line");
$magicLine.width($(".current_page_item").width())
.css("left", $(".active a").position().left)
.data("origLeft", $magicLine.position().left)
.data("origWidth", $magicLine.width());
$("#line-menu li").find("a").hover(function () {
$el = $(this);
leftPos = $el.position().left;
newWidth = $el.parent().width();
$magicLine.stop().animate({
left: leftPos,
width: newWidth
});
}, function () {
$magicLine.stop().animate({
left: $magicLine.data("origLeft"),
width: $magicLine.data("origWidth")
});
});
});