Я пытаюсь скользить вниз подменю при наведении курсора на # about и держать подменю видимым, пока не наведешь курсор на другую опцию
Предполагая, что вся навигация divs
имеет атрибут classиз nav
и навигационные ссылки заключены в тег div
или nav
, например:
<div id="navigation">
<a id="about" ...>About</a>
<a id="home" ...>Home</a>
<a id="products" ...>Products</a>
<a id="contact" ...>Contact</a>
<div class="nav" id="div-about" ...>...</div>
</div>
, вы можете сделать что-то вроде этого:
var menuTimeout;
$('#navigation a, #navigation .nav').hover(function() {
hovered_div = $('#navigation #' + 'div-' + $(this).attr('id').replace('div-',''));
$('#navigation .nav').not(hovered_div).hide();
(hovered_div.css('display') == 'none') && hovered_div.slideDown();
clearTimeout(menuTimeout);
}, function() {
menuTimeout = setTimeout(function() { $('#navigation .nav').slideUp(); }, 1000);
});
});
Это в основномпривязывается к событию hover
anchors
и элементам класса nav
и скрывает все div nav
, кроме текущего div (hovered) и slidesDown перемещенного div, если он не виден, также когда навигационные div или якоряне зависает, он скользит вверх по div через 1 секунду, используя setTimeout()
.
См. Демо .