задержка выпадания меню при наведении
Добрый день.
Всю голову сломал. Подскажите пожалуйста как сделать выпадание меню с задержкой. Скрипт готов без задержки и работает. А как добавить задержку голову сломал. this.setHandlersNotMobile = function(){ menu.on('mouseenter.mainMenu', '.catalog-menu-lvl0-item', function(){ var _ = $(this); var submenu = _.children('.submenu-wrap'); if ( _.hasClass('opened') ){ submenu.velocity('stop').velocity('reverse'); //$('body').addClass('darken'); return false; } submenu.addClass('opened'), setTimeout(function(){ if (typeof initHCarousel === 'function') submenu.find('.scroll-slider-wrap').each(initHCarousel); }, 50); }).on('mouseleave.mainMenu', '.catalog-menu-lvl0-item', function(){ var _ = $(this); var submenu = _.children('.submenu-wrap'); submenu.removeClass('opened'); }).on('hitstoggle', function(e, data){ if ( data.type === 'show' && typeof initHCarousel === 'function' ){ data.wrap.each(initHCarousel); } }); } |
Цитата:
|
Это немного не то. В выпадающем меню есть еще блок раскрывающийся с кнопки. Это и есть задержка по этому блоку. А вот по меню нет.
|
Цитата:
setTimeout(function() { А сюда свою функцию, если произошло наведение на кнопку меню }, 1000);:) |
Цитата:
|
Цитата:
P.S. я слегка иначе всё пишу, так что сложновато понять чужой код :) |
делал на всю функцию))) Не помогает)))
|
Цитата:
|
Цитата:
А так мое видение было таким this.setHandlersNotMobile = function(){ menu.on('mouseenter.mainMenu', '.catalog-menu-lvl0-item', function(){ var _ = $(this); setTimeout(function(){ var submenu = _.children('.submenu-wrap'); if ( _.hasClass('opened') ){ submenu.velocity('stop').velocity('reverse'); //$('body').addClass('darken'); return; } submenu.addClass('opened') }, 500); setTimeout(function(){ if (typeof initHCarousel === 'function') submenu.find('.scroll-slider-wrap').each(initHCarousel); }, 50); }).on('mouseleave.mainMenu', '.catalog-menu-lvl0-item', function(){ var _ = $(this); var submenu = _.children('.submenu-wrap'); submenu.removeClass('opened'); }).on('hitstoggle', function(e, data){ if ( data.type === 'show' && typeof initHCarousel === 'function' ){ data.wrap.each(initHCarousel); } }); } При таком исполнении резко проводя по меню оно появлятся но не убирается. Нужно навести на какое то время что бы пропало. |
Цитата:
|
Часовой пояс GMT +3, время: 23:00. |