|
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 242
|
|
Как сделать выпадающее меню переключающееся по клику?31.10.2025, 15:57. Показов 5700. Ответов 65
Метки нет (Все метки)
мне сказали тут что делать такое меню через Input неправильно, лучше с js
подскажите тогда как его сделать с js? еще хотелось бы чтобы оно закрывалось по клику кроме того
0
|
|
| 31.10.2025, 15:57 | |
|
Ответы с готовыми решениями:
65
Выпадающее меню по клику Меню: выпадающее дерево, как можно сделать чтобы при кол-во объектов ~1000 не было тормозов ? Как сделать такое выпадающее меню на React? |
|
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 242
|
|
| 25.11.2025, 14:26 [ТС] | |
|
0
|
|
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
||
| 25.11.2025, 14:50 | ||
|
Подобные менюшки могут иметь совершенно разные структуры. Я просто исхожу из своего опыта - Проще вешать класс на html, так как при ее открытии может происходить множество изменений на всем сайте в целом (блокироваться скролл, блюриться, сайт может вообще куда-то уезжать и т.д. ) Т.е. это как 2 состояния сайта - когда меню открыто и когда меню закрыто. И точно так сделано на сайте референсе - вы же посмотрите что происходит с тегом html, когда вы открываете меню. https://skrinshoter.ru/vYl1nh92sXj?a Мне лень все расписывать подробнейшим образом и все объяснять, у меня на это не хватит времени и нервов) Возможно данную вещь можно реализовать 10-ю разными способами - я предлагаю один конкретный. Если вы будете делать как-то по другому, то мне трудно будет вам помочь.
0
|
||
|
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 242
|
|||
| 27.11.2025, 14:38 [ТС] | |||
|
что мне сделать с сайтом чтобы было все как вы хотите?
0
|
|||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
||||||||||||||||||
| 27.11.2025, 16:22 | ||||||||||||||||||
|
.dropdown.active .dropbtn2 body { } - это что за селектор такой? body никак не может находиться внутри .dropdown Причем принято по возможности разделять классы, отвечающие за отображение и классы, отвечающие за поведение К примеру
1
|
||||||||||||||||||
| 28.11.2025, 11:50 | |
|
Главное тут быть аккуратным. Если есть некая логика, которая эти кнопки перерисовывает (т.е. в какой-то момент времени они могут добавляться на страница при помощи js) то делегирование вполне себе разумный выход. а на кого вешать обработчик - вопрос конкретного проекта
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 242
|
|
| 01.12.2025, 13:27 [ТС] | |
|
sad67man, вроде все работает, только я не совсем понял, сейчас все работает как вы хотели? я понячалу onclick стер но без него не работает в результате сделал как было
еще вопрос хотел сделать чтобы как я хочу выскакивающее меню и там класс на нем class="menu__burger js-menu-btn", как в css на него чисто повесить что-то? там не получилось это сделать я переименовал на этом меню id и через него сделал, но как это через класс сделать? и еще вопрос там я сделал кнопку закрыть меню, но она не отображается за пределами меню как ее сделать норм чтобы еще работала?
0
|
|
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
||
| 01.12.2025, 14:44 | ||
|
Это уже через css. Тут больше js не нужен.
0
|
||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
|
| 01.12.2025, 15:24 | |
|
trofey2, Так же обратите внимание - на сайте референсе меню в шапке и мобильное меню - это один и тот же блок. Просто на десктопе некоторые элементы скрыты.
Вам нужно привести в порядок структуру html. И скрипты пишутся в самом конце - перед закрывающим тегом </body>. Не надо их размещать посреди html кода.
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 242
|
||||||||
| 01.12.2025, 16:45 [ТС] | ||||||||
|
так, то есть я делаю так
0
|
||||||||
|
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 242
|
|
| 03.12.2025, 15:10 [ТС] | |
|
sad67man, не подскажете?
0
|
|
|
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,936
|
||
| 03.12.2025, 16:34 | ||
|
0
|
||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
||
| 03.12.2025, 16:45 | ||
|
Я бы постарался избегать дополнительные телодвижения при открытии меню. Там же будет подложка с затемнением фона - можно на нее будет повесить обработчик.
1
|
||
|
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 242
|
||
| 03.12.2025, 16:52 [ТС] | ||
|
а какой скрипт? и как это сделать?
0
|
||
|
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,936
|
|||
| 03.12.2025, 17:08 | |||
|
Технически, через инспектор можно много чего сделать, и скрипт сторонний запустить. Обычно подложку делают для модальных окон. Добавлено через 6 минут Пользователь, кроме вашего, посещает еще 100500 сайтов. У них может быть разное содержание, но интерфейс примерно одинаковый. И пользователь прекрасно знает, как открыть меню, как закрыть меню... Не надо изобретать нестандартный интерфейс. Это введет пользователя в заблуждение. Как на автомобиле - все вроде разные, но интерфейс (руль, педали, рычаг переключения скоростей) у всех на одном и том же месте. И работает примерно одинаково. Что бы не доставлять пользователю лишних хлопот.
0
|
|||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
|||
| 03.12.2025, 17:17 | |||
|
Добавлено через 1 минуту
0
|
|||
|
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,936
|
|||
| 03.12.2025, 17:27 | |||
|
0
|
|||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
||||||||
| 03.12.2025, 18:50 | ||||||||
|
Конечно проще повесить один обработчик на document и его не снимать. Не понимаю о чем спор. Просто если вам не нравится, что этот обработчик будет срабатывать даже когда меню закрыто. То можно использовать тот факт, что у меню есть подложка и повесить обработчик на него. Тогда данный обработчик будет срабатывать только когда меню открыто. Добавлено через 1 час 1 минуту https://misha.agency/javascrip... menta.html https://vallek.github.io/webde... ck-outside Тут нужно иметь представление, как события всплывают по DOM-дереву. Вешаем обработчик на весь документ - все клики на странице до него будут доходить. И проверяем элемент по которому произошел клик (event.target) - принадлежит ли он меню.
Не знаю какая у вас сейчас структура, я использовал #myDropdown2 из ваших прошлых сообщений. Нужно учитывать, что этот обработчик будет срабатывать при каждом клике, даже когда меню закрыто и каждый раз будет пытаться удалять этот класс. поэтому как вариант можно повесить этот обработчик не на весь document, а на подложку - которая у нас показывается только когда меню открыто.
1
|
||||||||
|
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 242
|
|||
| 09.12.2025, 16:13 [ТС] | |||
|
0
|
|||
|
2605 / 1509 / 689
Регистрация: 23.08.2015
Сообщений: 3,841
|
|||
| 09.12.2025, 16:27 | |||
|
Добавлено через 4 минуты trofey2, А нет. Тут получается так, что клик по гамбургеру - это же клик вне меню. Вот оно и закрывается. Добавлено через 4 минуты К примеру $(".main-menu__layout").on('click', - смотря какой класс ему дадите.
1
|
|||
|
0 / 0 / 0
Регистрация: 28.12.2015
Сообщений: 242
|
|||
| 10.12.2025, 14:24 [ТС] | |||
|
0
|
|||
| 10.12.2025, 14:24 | |
|
Как правильно сделать выпадающее меню для Header используя React? Появление элемента по клику на кнопку и скрытие элемента по клику на любое место body
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|