menu-bar.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Получаем элементы из DOM
  2. const menuBarEl = document.getElementById('menu-bar'); // Элемент меню
  3. const menuBarImgArrowEl = document.getElementById('menu-bar-img-arrow'); // Элемент стрелки в меню
  4. const menuBarLabelEls = document.querySelectorAll('.menu-bar-label'); // Коллекция элементов меток в меню
  5. const userWorkspaceEl = document.getElementById('user-workspace'); // Элемент рабочей области пользователя
  6. // Проверяем, открыто ли меню, и устанавливаем значение по умолчанию, если в localStorage нет информации
  7. if (localStorage.getItem('menuBarOpened') === null) localStorage.setItem('menuBarOpened', true);
  8. // Функция для управления видимостью меню
  9. function menuBarControll() {
  10. // Получаем значение открытия меню из localStorage
  11. let menuBarOpened = localStorage.getItem('menuBarOpened');
  12. let menuBarWidth;
  13. // Устанавливаем ширину меню в зависимости от его состояния (открыто/закрыто)
  14. if (menuBarOpened === 'true') {
  15. // Ширина меню при закрытом состоянии
  16. menuBarWidth = 74;
  17. // Устанавливаем класс активности для каждой надписи в меню
  18. menuBarLabelEls.forEach(function(el) { el.classList.add("collapsed"); });
  19. // Поворачиваем стрелку на 0 градусов
  20. menuBarImgArrowEl.style.transform = 'rotate(0deg)';
  21. } else {
  22. // Ширина меню при октрытом состоянии
  23. menuBarWidth = 280;
  24. // Убираем класс активности для каждой надписи в меню
  25. menuBarLabelEls.forEach(function(el) { el.classList.remove("collapsed"); });
  26. // Поворачиваем стрелку на 180 градусов
  27. menuBarImgArrowEl.style.transform = 'rotate(180deg)';
  28. }
  29. // Устанавливаем необходимую ширину меню и отступ рабочей области пользователя
  30. menuBarEl.style.minWidth = menuBarWidth + 'px';
  31. userWorkspaceEl.style.marginLeft = menuBarWidth + 16 + 'px';
  32. }
  33. // Функция для переключения состояния открытия меню
  34. function menuBarSwitch() {
  35. // Получаем текущее значение открытия меню из localStorage
  36. let menuBarOpened = localStorage.getItem('menuBarOpened');
  37. // Инвертируем значение (true -> false, false -> true)
  38. menuBarOpened = menuBarOpened === 'true' ? false : true;
  39. // Сохраняем новое значение в localStorage
  40. localStorage.setItem('menuBarOpened', menuBarOpened);
  41. // Вызываем функцию управления меню для обновления его внешнего вида
  42. menuBarControll();
  43. }