Меню на jquery (помогите)
Привет, помогите кто может, а то голову сломал. может решение и на поверхности
короче есть меню с сабменю выглядит так
мы находимся в текущем разделе (.current)
при наведении на другие пункты показываю их подразделы.
Задача: сделать так что если при наведении на разделы в которых нет вложенного меню или вне меню у нас возвращалось сабменю пункта .current
HTML
JS
короче есть меню с сабменю выглядит так
мы находимся в текущем разделе (.current)
при наведении на другие пункты показываю их подразделы.
Задача: сделать так что если при наведении на разделы в которых нет вложенного меню или вне меню у нас возвращалось сабменю пункта .current
HTML
<nav class="main_nav" id="mainmenu">
<ul>
<li><a href="#">Projects</a>
<ul>
<li><a href="#filter=*">Show All</a></li>
<li><a href="#filter=.item1">Featured Projects</a></li>
<li><a href="#filter=.item2">Learning Environments</a></li>
<li><a href="#filter=.item3">Dining and Recreation</a></li>
<li><a href="#filter=.item4">Campus Centers</a></li>
<li><a href="#filter=.item5">Visual and Performing Arts</a></li>
<li><a href="#filter=.item6">Heathcare and Research</a></li>
<li><a href="#filter=.item7">Housing</a></li>
<li><a href="#filter=.item8">Administration and Mixed Use</a></li>
<li><a href="#filter=.item9">Planning and Programming</a></li>
<li><a href="#filter=.item10">On the Boards</a></li>
</ul>
</li>
<li><a href="#">Process</a>
<ul>
<li><a href="#">Architectural Design</a></li>
<li><a href="#2">Planning and Programming</a></li>
<li><a href="#">Interior Design</a></li>
<li><a href="#">Sustainable Design</a></li>
<li><a href="#">Project Management</a></li>
<li><a href="#">Building Information Modeling</a></li>
</ul>
</li>
<li class="current"><a href="#">Firm</a>
<ul>
<li><a href="#">Firm Overview</a></li>
<li><a href="#">People</a></li>
<li><a href="#2">Careers</a></li>
<li class="current"><a href="#">Awards</a></li>
<li><a href="#">Client List </a></li>
</ul>
</li>
......
</ul>
</nav>
JS
$(".no-touch #mainmenu>ul>li").not(".search").hover(function(){
$(this).addClass("hover");
$('ul:first',this).stop(true, true).fadeIn(450);
}, function(){
$(this).removeClass("hover");
$('ul:first',this).stop(true, true).fadeOut(450);
});
48 комментариев
но основная проблема как вернуть назад подменю текущего меню при «уводе» курсора с пунктов меню или вообще куда либо
$('ul:first',this).stop(true, true).fadeOut(450);
в итоге сабменю остается пустым.
Фейдаут насколько я помню делает примерно то, что я предложил без css c с тем отличием, что вместо свойства display применяется visibility, хотя могу и ошибаться.
Можешь положить на
Спасибо большое :)
как ты его скроешь при наведении на другой пункт меню?
Но если там нужна прозрачность, то ты прав, такой вариант не самый лучший, хотя, в зависимости от фона под меню и это можно решить. Собственно, ход мысли ты угадал верно.
фон это слайдер из картинок. и еще фишка в том что не только там будет hover
если modernizr определит что у нас тачскрин то будет click
дак как же я определю что это тач устройство чтоб повесить то?
Эмуляция всех этих свойств модернизатором совровождается серьёзными тормозами (старые браузеры чаще всего стоят на старых слабых машинах), разумнее не учить старую собаку новым фокусам, а оставить её в покое. Моё мнение таково — уж лучше это выглядит и работает не в точности, как на современных браузерах, но зато работает комфортно. Зачем подменять цель средством? Задача разработчика заключается вовсе не в создании одинакового внешнего вида и поведения абсолютно везде, а в создании удобного полезного интерфейса.
Строго говоря, моё css-only предложение не будет работать в ie6 (исправляется легко) и в опере 6 (когда вы её в последний раз видели?).
я тогда и по ссылке не перейду
Этот подход не претендует на статус идеального, я просто выдвинул альтернативное предложения в качестве пищи для размышлений. Тем не менее, он работает.
с сабменю пофиксил
я сначала думал это из за border который раньше был на li
но я его перенес в поидеи li примыкают плотно друг к другу
а синхронный фэйд не выйдет?
в общем, скрипт увеличится в два раза, проще класс написать)