Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 38

React адаптивное меню

20.05.2021, 22:14. Показов 1795. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть работающее адаптивное меню на React. Когда я уменьшаю размер страницы до адаптивного размера (450px) у меня оно показывается, как уже меню открыто, а надо чтобы при уменьшении оно сначала было закрыто. Что мне здесь нужно поменять или что добавить?

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import React, {useState} from "react";
 
export let Header = () => {
 
let [headerVisible, setHeaderVisible] = useState(true)
 
let toggle = () => {
    setHeaderVisible(!headerVisible)
}
return(<header className='header'>
{headerVisible && <nav className='menu'>
            <div><a href='#'>Two</a></div>
            <div><a href='#'>One</a></div>
            <div><a href='#'>Three</a></div>
            <div><a href='#'>Four</a></div>
            <div><a href='#'>Five</a></div>
</nav>}
        <div className='button_mobile' onClick={toggle}>
            <span></span>
        </div>
</header>)
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.05.2021, 22:14
Ответы с готовыми решениями:

Посоветуйте практический курс на React redux/ react
Всем привет. Столкнулся с тем, что мне не хватает практики. Подскажите какой практический курс по реакту. типо...

Разница между React и React native
Я хочу начать освоение React для фрондента, но при этом хотел бы иметь возможность писать мобильные приложения. И поэтому у меня вопрос:...

Несовместимость React-Router и React-Bootstrap
Добрый день, Пишу маленький проект и в качестве дизайна решил использовать React-Bootstrap. При создании Навигации сайта использовал...

8
 Аватар для bodynar
345 / 307 / 135
Регистрация: 14.03.2015
Сообщений: 1,158
Записей в блоге: 1
22.05.2021, 17:49
Frankenstar, Если при уменьшении размера окна вам необходимо после определенного значения "сворачивать" меню без учета его пр. состояния - то просто повесьте обработчик на изменение размера окна и при выполнении вашего условия (450px) сворачивайте ваше меню согласно вашим внутренним условиям (например у вас есть флаг headerVisible)
0
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 38
22.05.2021, 18:01  [ТС]
bodynar, суть в том, что если я сворачиваю окно к адаптивной версии, меню у меня сразу открытое, а нужно чтобы было наоборот. И я не знаю как это сделать(((
0
 Аватар для bodynar
345 / 307 / 135
Регистрация: 14.03.2015
Сообщений: 1,158
Записей в блоге: 1
22.05.2021, 18:35
Frankenstar, На основании чего у вас определяется состояние открыт\закрыт?

У вас есть возможность записать gif с воспроизведением ситуации?
0
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 38
22.05.2021, 19:58  [ТС]
@bodynar, вот. Я уменьшаю и сразу видно. А нужно чтобы сначала адаптивное меню было закрито.
Вложения
Тип файла: mp4 bandicam 2021-05-22 19-55-49-806.mp4 (1.53 Мб, 14 просмотров)
0
 Аватар для bodynar
345 / 307 / 135
Регистрация: 14.03.2015
Сообщений: 1,158
Записей в блоге: 1
22.05.2021, 22:55
Frankenstar, Да, вам должно подойти решение, что я выше предложил

Цитата Сообщение от bodynar Посмотреть сообщение
просто повесьте обработчик на изменение размера окна и при выполнении вашего условия (450px) сворачивайте ваше меню согласно вашим внутренним условиям (например у вас есть флаг headerVisible)
0
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 38
22.05.2021, 22:57  [ТС]
@bodynar, в том и дело, я не понимаю как это сделать. Мог бы помочь с этим?
0
 Аватар для bodynar
345 / 307 / 135
Регистрация: 14.03.2015
Сообщений: 1,158
Записей в блоге: 1
22.05.2021, 23:18
Frankenstar, Как за основу предлагаю вам взять этот кастомный хук и внедрить в свое приложение. На основе параметров, которые будут получены можно делать условные операции

Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { useState, useEffect } from "react";
// Usage
function App() {
  const size = useWindowSize();
  return (
    <div>
      {size.width}px / {size.height}px
    </div>
  );
}
// Hook
function useWindowSize() {
  // Initialize state with undefined width/height so server and client renders match
  // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/
  const [windowSize, setWindowSize] = useState({
    width: undefined,
    height: undefined,
  });
  useEffect(() => {
    // Handler to call on window resize
    function handleResize() {
      // Set window width/height to state
      setWindowSize({
        width: window.innerWidth,
        height: window.innerHeight,
      });
    }
    // Add event listener
    window.addEventListener("resize", handleResize);
    // Call handler right away so state gets updated with initial window size
    handleResize();
    // Remove event listener on cleanup
    return () => window.removeEventListener("resize", handleResize);
  }, []); // Empty array ensures that effect is only run on mount
  return windowSize;
}
0
123 / 98 / 15
Регистрация: 02.02.2014
Сообщений: 346
22.05.2021, 23:24
CSS
1
display: none
на него. через @media
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.05.2021, 23:24
Помогаю со студенческими работами здесь

Bootstrap и адаптивное меню. При уменьшении меню распадается на несколько строк
меню до уменьшения выглядит так после уменьшения так используется Bootstrap.

Адаптивное меню, как сделать скрытие меню после клика на любую ссылку
Подключил на сайт адаптивное меню - http://tympanus.net/codrops/2014/09/16/off-canvas-menu-effects/ сейчас оно скрывается при нажатии на...

Адаптивное меню. Глюк в виде выделения пунктов меню
Описание проблемы.. Есть меню. При &quot;собранном&quot; состоянии, когда несколько раз нажать кнопку &quot;открыть -закрыть&quot; - выделяются...

Адаптивное меню
Здравствуйте Уважаемые ! Проблема вот в чём .. Я какой бы шаблон не скачал W3layouts у них у всех проблемы с меню: уменьшаю...

Адаптивное меню
Здравствуйте, форумчане. Недавно начал изучать javascript и решил сделать адаптивную верстку. Но не фортонуло, не получилось. Можете...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru