10

我无法消除 Superfish 下拉修复的初始延迟。我的客户想要延迟 onmouseout,而不是延迟 onmouseover。

我有一个纯 CSS 下拉菜单(与 Twentyten 下拉菜单相同),并且正在将 Suckerfish.js 应用于此。

这是我的代码:

$('ul#menu-airco-mb-navigatiestructuur').superfish({
    delay: 600,
    autoArrows:    false,
    speed: 'fast'
}); 

我一直在阅读Superfish 的手册,但似乎找不到触发初始延迟的原因。也许它与动画有关animation: {opacity:'show'}(我似乎无法理解)。

感谢您的帮助!

4

2 回答 2

13

似乎您可能包含 HoverIntent 插件。Superfish 的选项之一是“disableHI”。如果您将其设置为“true”,那么 Superfish 将不会使用 HoverIntent 来延迟 mouseenter 事件。或者,如果您不打算在网站的其他地方使用 HoverIntent 插件,您也可以不包含它。希望这可以帮助。

$('ul#menu-airco-mb-navigatiestructuur').superfish({
    delay: 600,
    autoArrows: false,
    speed: 'fast',
    disableHI: true
});

我创建了两个测试用例。第一个是使用 CSS 的页面的简化版本,第二个是完全相同的,只是我删除了所有 CSS,只包含在 Superfish 网站上找到的基本 superfish.css。我还将菜单类从“menu”更改为“sf-menu”,这样 superfish.css 才能正常工作。

请注意,带有我的 CSS 的版本可以按照您的意愿工作,而带有您的 CSS 的版本有您描述的错误。我想有一个 CSS 问题,您可以通过将我的与您的比较并更改您的以使其更接近来解决。我看到的一个区别是我将子菜单 UL 设置为固定的 em 宽度,将它们的子 LI 设置为 100%,而您没有。这不是罪魁祸首,但表明您可能会受益于将您的 CSS 与经过验证的 Superfish 菜单方式更紧密地对齐。希望这可以帮助。

于 2011-12-14T12:29:42.007 回答
0

您在鼠标悬停时看到的不是任何延迟,而是实际运行的动画。

我想你可以删除动画。

如果您只对高度进行动画处理,您将获得即时的视觉响应,而不是需要一秒钟才能出现的不透明度。

功能方面可能是,但你想要,不知道视觉。

        $('ul#menu-airco-mb-navigatiestructuur').superfish({
            delay       : 0,
            animation   : { height:'show' },
            speed       : 'fast'
        });
于 2011-11-22T17:52:38.413 回答