![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| begin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 415 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
Есть меню: разделы и подразделы (т.е. двухуровневое). Грузятся сразу все пункты и подпункты. Но вначале пользователь видит только список разделов. Нужно, чтобы при наведении мышки на раздел - появлялся список подразделов, раздвигая при этом остальные пункты меню. Плавность тут не обязательна. При наведении на другой раздел, эти подразделы исчезают, меню опять сжимается, появляются другие подразделы, снова раздвигая собой меню.
Поискал готовые скрипты, но они настолько громоздкие, что пропадает всякое желание. Вот я и подумал: допустим каждая группа подразделов лежит в в своем div. При событии onmouseover для их родительского раздела, меняется свойство display у div хранящего подразделы для данного раздела. Но вот будет ли при этом появляющийся div раздвигать остальные пункты меню, а не просто перекрывать их сверху? Заранее благодарю за советы по этой теме. |
|||
|
||||
| Michael.de |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 4 Всего: 9 |
begin, предлагаю следующее: нарисуй от руки на бумажке оба варианта (закрытое и раскрытое) меню, отсканируй (сожми до ~25KByte) и покажи тут. Я, честно говоря, не врубился (про остальных не знаю)
|
|||
|
||||
| begin |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 415 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
Вот как должно выглядеть меню в разных ситуациях:
1. На меню еще не наводили мышку:
2. Навели мышку на пункт "катеры":
3. Навели мышку на пункт "автомобили":
|
||||||
|
|||||||
| EmilRegis |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 306 Регистрация: 21.9.2007 Репутация: 3 Всего: 4 |
так если div подменю будет лежать внутри div'а родителя, то в любом случае всё будет раздвигаться
то есть
|
|||
|
||||
| begin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 415 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
Итак, написал код, но не работает - никакой реакции.
Подскажите - что я не так делаю? |
|||
|
||||
| Michael.de |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 4 Всего: 9 |
begin, следующий код работает:
|
|||
|
||||
| EmilRegis |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 306 Регистрация: 21.9.2007 Репутация: 3 Всего: 4 |
||||
|
||||
| begin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 415 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
Спасибо всем
|
|||
|
||||
| begin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 415 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
Этот код очень помог. Но теперь встала задача: нужно ведь сворачивать остальные div'ы.
Попровал сделать это вот так - добавил цикл до 20 (с запасом), который прячет все div'ы. Но: 1. перестает все работать вообще 2. как посчитать количество подлежащих сворачиванию div'ов?
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| begin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 415 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
diadiavova, благодарю за код, но:
1. у меня ведь уже все на дивах - можно ли для моей ситуации пример? 2. по onmouseout мне уже не нужно сворачивать подпункты - я уже понял, что погарячился 3. нужно только по onmouseover разворачиать подпункты данного раздела, а подпункты остальных разделов наоборот - свернуть. Сейчас у меня заковыка только со сворачиванием остальных разделов. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Надо во вложенных списках просто имена тегов поменять, там ничего специфичного для списков не используется и будет работать хоть для дивов, хоть для чего(хотя, имхо, так лучше). Можно просто назначить им атрибут name и получить все дивы с этим именем при помощи getElementsByName. Обойти весь список и свернуть, а после этого развернуть то, что надо. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Что-то в этом роде
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| begin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 415 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
О, это уже теплее
А как доработать эту функцию, если у меня у всех свернутых/развернутых дивов, разные имена типа: meny1_2, menu2_2....menu4_2 ? |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Прилепи туда какой-нибудь собственный атрибут и ищи понему
<div hiddenmenu="1"> Обрабатывать это можно так
Что-то в этом роде, я сам не проверял, но думаю, идея понятна. Хотя честно говоря, мне это не очень нравится, предыдущие варианты были лучше. Это сообщение отредактировал(а) diadiavova - 29.7.2009, 23:03 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |