Stas-ik,
Еще раз: - Перенесите открытие темного фона по наведению(.mouseenter/mouseleave) на родитель!! (<div class="menuholder"> или <ul class="menu slide">) На li только квадраты с инвентарем! )без фона |
Это при наведении
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 |
Sober_exe,
Сделано не верно - фон должен быть при наведении на само меню, а не на конкретный пункт у Вас же он убирается при переходе с пункта на пункт(а курсор находиться в меню Т.е анимации две 1. Для наведения на контейнер с Li = показываем тёмный фон 2. При наведении на конкретный Li - открываем ивентарь(фона там у же нет, он открыт на родителе) |
Deff, я не влезал в то КАК это должно отображаться, а показал как написать скрипт, если не тупо копипастить, то схема понятна и поменять на своё. Я даже дописал, что с учётом правок ваших.
|
$('.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. |