Удалите задержку выпадающего меню Superfish onmouseover, сохраняя задержку Hoverintent onmouseout

У меня возникли проблемы с устранением начальной задержки удаления выпадающего списка Superfish. Мой клиент хочет задержку onmouseout, но не задержка onmouseover.

У меня есть раскрывающееся меню для чистого CSS (идентичное раскрывающему меню Twentyten), и я применяю Suckerfish.js к этому.

Вот мой код:

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

Я читал руководство Superfish, но я не могу найти, что вызывает начальную задержку. Возможно, это как-то связано с анимацией animation: {opacity:'show'} (что, по-видимому, не может показаться моей головой).

Помощь приветствуется!

Ответ 1

Похоже, вы можете включить плагин 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.css, найденный на веб-сайте Superfish. Я также изменил класс меню из "меню" в "sf-menu", так что работает superfish.css.

Обратите внимание, что версия с моим CSS работает так, как вы этого хотите, в то время как у вашего CSS есть ошибка, которую вы описываете. Я предполагаю, что есть проблема с CSS, которую вы могли бы разобраться, сравнивая мои с вашими и изменяя ваши, чтобы соответствовать им ближе. Одна разница, которую я вижу, заключается в том, что я установил UL подменю в фиксированную ширину em и их дочерние LI до 100%, тогда как вы этого не сделаете. Это не является виновником, но показывает, что вам может пригодиться выравнивание вашего CSS в тесном и проверенном способе работы над меню Superfish. Надеюсь, это поможет.

Ответ 2

То, что вы видите при наведении курсора мыши, - это не задержка, а фактическая анимация.

Я предполагаю, что вы можете удалить анимацию.

Если вы только анимируете высоту, вы получаете немедленный визуальный ответ, а не прозрачность, которая занимает секунду.

Функциональность мудрая, которая может быть, но вы хотите, не знаете о визуально.

        $('ul#menu-airco-mb-navigatiestructuur').superfish({
            delay       : 0,
            animation   : { height:'show' },
            speed       : 'fast'
        });