【问题标题】:Magic Line CSS/Javascript code - Adding sub navigationMagic Line CSS/Javascript 代码 - 添加子导航
【发布时间】:2014-06-27 19:01:06
【问题描述】:

我正在将这个“Magic Line”代码实现到我的导航菜单中,但是在添加子菜单时我似乎遇到了麻烦。当您将鼠标悬停在任何子菜单项上时,魔术线会一直射到页面的左侧。我希望它留在子菜单所在的菜单项上。

您可以在这里查看我的网站:http://www.christmaslightsinstallation.ca/

原始脚本(无子导航):http://css-tricks.com/examples/MagicLine/

(我为此尝试了一个小提琴,但由于它在 wordpress 中翻译得不是很好)

我的javascript如下:

$(function() {

var $el, leftPos, newWidth,
    $mainNav = $("#menu-main-menu");

$testing = $(".menu-header");

$testing.append("<span id='magic-line'></span>");
var $magicLine = $("#magic-line");

$magicLine
    .width($(".current_page_item").width())
    .css("left", $(".current_page_item a").position().left)
    .data("origLeft", $magicLine.position().left)
    .data("origWidth", $magicLine.width());

$("#menu-main-menu li 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")
    });    
});
});

我尝试使用“#menu-main-menu li li a”创建第二个悬停功能,并尝试使用“preventdefault();”事件。这只是造成了大量的错误。

我对 javascript 还很陌生,所以我能想到/知道如何做的事情有限,试图解决这个问题。

【问题讨论】:

    标签: javascript jquery html css wordpress


    【解决方案1】:

    $("#menu-main-menu li a").hover(function() {

    将上面的行改为:

    $("#menu-main-menu &gt; li").hover(function() {

    编辑:

    也改变:

    newWidth = $el.parent().width();
    

    到:

    newWidth = $el.width();
    

    【讨论】:

    • 谢谢@Coby 这大部分都有效。现在唯一的事情是当您将鼠标悬停在某物上时,魔术线占据了导航栏的整个宽度,而不仅仅是 li 宽度。我可以手动输入宽度,但有动态的方法吗?
    • 喂!抱歉,刚刚看到其他内容...当您在子页面上并尝试使用导航时,魔术栏一直从左侧出现。没什么大不了的,但是...christmaslightsinstallation.ca/about-us/our-lights
    猜你喜欢
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 2015-06-15
    相关资源
    最近更新 更多