На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»

Путь курсора над меню

17.11.2006 17:44

Сегодня в одном разговоре возник вопрос о непростом отслеживании движения курсора мыши над выпадающими меню. Помню, что когда-то читал по этому поводу статью какого-то юзабилити-гуру, но сейчас найти так и не смог. Поэтому решил написать об этом сам, чтобы потом было куда ссылаться. А глядишь, в комментариях кто-нибудь и ту статью подскажет :-).

Речь идет о выпадающих меню, в которых пункты выбираются просто при наведении мыши, без клика. То есть так, как это работает во всех развитых оконных средах.

Представьте себе открытое вертикальное popup-меню, у которого выбран верхний пукнт, который ведет к подменю, которое тут же открывается справа (для простоты положим, что места справа и внизу полно).

открытое вертикальное popup-меню, у которого выбран верхний пукнт, который ведет к подменю, которое тут же открывается справа

Все пункты этого подменю, кроме самого первого, находятся ниже мышиного курсора, и если двинуть мышь к какому-нибудь из них напрямик, то указатель неминуемо пройдет через нижние пункты первого меню. А значит, по идее, эти пункты должны тут же выделяться, а подменю, открытое из первого — закрываться.

Но такого не происходит. Во всех нормальных оконных средах есть специальная логика, которая отслеживает это движение, и если оно “похоже” на движение к подменю — придерживает его закрытие. Сделано так потому, что человеку сложнее и медленнее двигать мышь строго в горизонтальном и вертикальном направлении, и практически все люди, когда выбирают пункт в подменю, ведут мышь хоть и не точно напрямик, но сильно срезая углы.

Сама программная логика эта, кстати, довольно непростая, одним таймаутом на закрытие меню тут не обойдешься. Ведь если пользователь ведет мышь более вертикально, для того, чтобы открыть другое подменю, то задержка в закрытии первого будет его тормозить. Также и в случае, если мышь провести по срезаемому пути обратно от подменю к основному меню, подменю должно закрываться без задержки (проверьте!).

Кстати, в выпадающих меню на веб-страницах такой логики нет. Браузеры не могут ее реализовать, потому что нет какого-то одного стандартного способа делать меню, и для браузера это просто кусок скрипта и HTML’а разной степени витиеватости. А веб-разработчики не реализуют ее в скриптах, потому что это, говоря прямо, одуреешь программировать крайне непросто.

Это одна из причин, почему выпадающими меню на вебе пользоваться ощутимо труднее: они вечно норовят сбежать из под мышки.

P.S. Это, кстати, еще одна иллюстрация к тому, что программировать контролы пользовательских интерфейсов — трудно.

Материалы по теме:


Источник: Маниакальный веблог
Иван Сагалаев о программировании и веб-разработке


последние новости
01.02.2013 15:18 | Интернет и малые предприятия...»
22.01.2013 13:30 | Провал с планшетом от Microsoft...»
27.11.2012 13:14 | Ключ к лучшему софту для вас!...»
22.11.2012 14:39 | Выбор домашнего компьютера...»
16.11.2012 15:17 | Старый знакомый - Dr. Web...»

Другие разделы
I2R Business
I2R Web Creation
I2R Computer
I2R-Журналы
I2R Business
I2R Web Creation
I2R Computer
рассылки библиотеки +
И2Р Программы
Всё о Windows
Программирование
Софт
Мир Linux
Галерея Попова
Каталог I2R
Партнеры
Amicus Studio
NunDesign
Горящие путевки, идеи путешествийMegaTIS.Ru

2000-2008 г.   
Все авторские права соблюдены.
Rambler's Top100