我從CSSTRICKS中獲得了一段代碼,這是魔術線導航,它將在我的菜單項下放置一行,並將移過我懸停的那一行。我希望它是這樣的,當我點擊菜單時,該線將停留在該菜單項,並且不像往常一樣返回到第一個菜單項。我需要更新我的jQuery代碼
該腳本使用類選擇器來指示默認情況下該行的位置。因此,我用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")
});
});
});
創建jsfiddle.net現場演示,非常努力地幫助,而不能使用實時html和css來定位問題 – charlietfl
'$(「#line-menu li」)。find(「a」)。hover(function(){'是設置魔術線位置的部分第二個函數將它重新指向它的原點),這個類本身只是它的一部分,並且將它設置爲保持在活動菜單項下,這不僅僅是將該類添加到第e元素。 –