使用悬停/淡入淡出折叠菜单

Posted

技术标签:

【中文标题】使用悬停/淡入淡出折叠菜单【英文标题】:Collapse menu with hover/fadeTo 【发布时间】:2012-10-20 05:54:05 【问题描述】:

这是我尝试过的:http://jsfiddle.net/MRMr4/2/

当然有问题。

如您所见,当我将鼠标移动到正下方显示的 部分 时,该部分消失了。如何更改我的 jQuery,以便仅当鼠标离开 #menu#products 时此部分才会消失?

$('#menu').hover(function()
    $('#products').fadeTo('fast', 1);
, function()
    $('#products').fadeTo('fast', 0);
);

$('#products').mouseover(function()
    $('#products').show();
).mouseout(function()
    $('#products').fadeTo('fast', 0);
);

【问题讨论】:

【参考方案1】:

正确,这种方法使用超时来延迟产品窗口的折叠。这将允许您将鼠标从菜单移动到产品窗口,而不会崩溃...!

$('#menu').mouseenter(function() 
    $('#products').fadeIn(100);

    var timeout = null;

    // Set timeout to delay collapse of product window
    $(this).mouseleave(function() 
        timeout = setTimeout(collapse, 300);
    );

    // Cancel the collapse event if product window is entered
    $('#products').mouseenter(function() 
        clearTimeout(timeout);
    ).mouseleave(function()
        collapse();
    );
);

function collapse() 
    $('#products').fadeOut(100);

看看your updated fiddle。

【讨论】:

好的,现在我也需要在鼠标从#menu (而不仅仅是#products)移出时实现这一点。

以上是关于使用悬停/淡入淡出折叠菜单的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 淡入淡出切换

CSS 过渡 - 仅在悬停时淡入淡出元素

使用另一个图像淡入/淡出背景图像/淡出其他元素

使用AnimateWindow来实现窗口淡入淡出(主要有四种动画,滚动,滑动,折叠或展开,和淡入淡出)

如何添加淡入淡出功能以在悬停功能上播放?

jquery悬停图像淡入淡出交换