Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как реализовать задержку при наведении в меню? (https://javascript.ru/forum/dom-window/35270-kak-realizovat-zaderzhku-pri-navedenii-v-menyu.html)

Deff 07.02.2013 14:44

Stas-ik,
Еще раз: - Перенесите открытие темного фона по наведению(.mouseenter/mouseleave) на родитель!!
(<div class="menuholder"> или <ul class="menu slide">)

На li только квадраты с инвентарем! )без фона

Sober_exe 07.02.2013 15:09

Это при наведении
function openMenu(){
	$('.back').animate({"height":"500px"},'1000');
}
$('.menuholder').mousenter(function(){
	timeout = setTimeout(openMenu, 500);
});

$('.menuholder').mouseleave(clearTime(function(){
	clearTimeout(timeout);
}),500);


Это по клику:
<div class="menuholder" onclick(openMenu());>...</div>

function openMenu(){
	$('.back').animate({"height":"500px"},'1000');
}
function closeMenu(){
	$('.back').animate({"height":"0px"},'1000');
}
$('.menuholder').mouseleave(closeMenu());

Ну и измените с учётом правок Deff

Deff 07.02.2013 15:12

Sober_exe,
Сделано не верно - фон должен быть при наведении на само меню, а не на конкретный пункт
у Вас же он убирается при переходе с пункта на пункт(а курсор находиться в меню
Т.е анимации две
1. Для наведения на контейнер с Li = показываем тёмный фон
2. При наведении на конкретный Li - открываем ивентарь(фона там у же нет, он открыт на родителе)

Sober_exe 07.02.2013 15:56

Deff, я не влезал в то КАК это должно отображаться, а показал как написать скрипт, если не тупо копипастить, то схема понятна и поменять на своё. Я даже дописал, что с учётом правок ваших.

patsvetkov 20.02.2014 12:21

$('.listdelay').click(function(){
        $(this).addClass('onhover2').addClass('onhover');
    })
    $('.listdelay').hover(
        function(){
            var List = $(this);
            $(this).addClass('onhover2');
            setTimeout(function(){
                if ( List.hasClass("onhover2") ) {
                    List.addClass('onhover');
                }
            }, 300);

        },
        function(){
            var List = $(this);
            List.removeClass('onhover');
            List.removeClass('onhover2');
        });

соответстственно, показ нужного элемента можно сделать так:
.onhover.onhover2 div{
display :block;
}


Часовой пояс GMT +3, время: 18:40.