задержка выпадания меню при наведении
Добрый день.
Всю голову сломал. Подскажите пожалуйста как сделать выпадание меню с задержкой. Скрипт готов без задержки и работает. А как добавить задержку голову сломал.
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, время: 05:05. |