Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как научить выпадающее меню исчезать в нужный


Автор: Royan 2.2.2009, 16:29
У меня классическая схема:

Код

|      Menubar     |
|    Menu Item1    |
|    Menu Item2    |
|    Menu Item3    |


Пользователь подводит мышкой на menubar, появляется слой с тремя (в моем случае) menu item'ами. Вопрос в том когда эту субменюшку прятать? В какой момент, по какому событию какого объекта (onmouseout, onblur)?

Автор: ksnk 2.2.2009, 16:46
Классический подход - убирать по mousedown на любой области, не лежащей на менюшке. Он требует неких знаний и строчек кода. 
Классический CSS подход - убирать по mouseout из этого меню... В принципе - работает, но только для больших меню, иначе приходится муторно объяснять юзеру какого #$№% менюшка  прыгает и прячется....

Автор: Royan 2.2.2009, 18:10
ksnk, Вот я изначально думал про mousedown на любой области, но столкнулся с тем, что не понятно, что такое "любая область". И потом если пользователь случайно нажмет кнопку мыши на субменюшке получается она пропадет, хотя такого быть не должно

Почему ты называешь "Классический CSS подход - убирать по mouseout" В CSS'е ведь нет событийной модели (исключая IE::expression())
Второй подход имеет следующий недостаток. Если пользователь навел мышкой на меню (появилась субменюшка) а потом не наводя на субменюшку увел мышку куда-нибудь. В итоге субменюшка висит пока на нее не наведут мышкой и соответственно уже после не произойдет onmouseout

Автор: ksnk 2.2.2009, 18:42
Royan, "Классический CSS подход" - довольно минималистические менюшки построенные на чистом CSS. Там есть событийная модель (.hover) smile . Любопытно взглянуть хотя бы, чтобы не городить лишнюю разметку. К примеру, http://www.cssplay.co.uk/menu/index.html. Впрочем, по гуглу их тонны...
Цитата

лучайно нажмет кнопку мыши на субменюшке получается она пропадет

Ну, дык! должно существовать понятие "меню", как всей совокупности открытых сейчас подменюшек.


Автор: Royan 3.2.2009, 11:18
Цитата(ksnk @  2.2.2009,  15:42 Найти цитируемый пост)
Там есть событийная модель (.hover)

Сорри соображение тугое, память дырявая

Корочи понятна, спасибо большое ksnk!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)