Задать вопрос
Viktoria_Khramkova
@Viktoria_Khramkova
HTML-верстальщик

Почему не меняется кнопка выпадающего меню при переключении?

Здравствуйте. Делаю верстку проекта для отработки навыков. Решила сделать открытие выпадающего меню при помощи JS. Меню работает. Но кнопка переключается только один раз. Где допустила ошибку?
И нужно ли еще делать открытие меню без JS для подстраховки? Если да, то как?
Если что, могу скинуть ссылку на репозиторий.
64cce45bc16d3714808329.png64cce461aa1ef550700979.png64cce467041f8165379475.png
.button-subcatalog {
  position: absolute;
  top: -10px;
  left: 243px;
  z-index: 2;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: transparent;
  border: 2px solid #000000;
  opacity: 0.3;
}

.button-subcatalog-opened {
  background-image: url("../images/header/plus-icon.svg");
  background-size: 16px 16px;
  background-repeat: no-repeat;
  background-position: center;
}

.button-subcatalog-closed {
  background-image: url("../images/header/minus-icon.svg");
  background-size: 16px 2px;
  background-repeat: no-repeat;
  background-position: center;
}

.button-subcatalog:hover,
.button-subcatalog:active {
  opacity: 1;
}

.catalog-popover-wrapper {
  position: absolute;
  top: 30px;
  left: -60px;
  z-index: 1;
  width: 1100px;
  padding-bottom: 51px;
  padding-left: 60px;
  background-color: #ffe17f;
}

.popover-closed {
  display: none;
}

.popover-closed .button-subcatalog-opened {
  display: block;
}

.popover-closed .button-subcatalog-closed {
  display: none;
}

.popover-open {
  display: block;
}

.popover-open .button-subcatalog-opened {
  display: none;
}

.popover-open .button-subcatalog-closed {
  display: block;
}


let catalogPopover = document.querySelector('.catalog-popover-wrapper');
let buttonSubcatalog = document.querySelector('.button-subcatalog');

catalogPopover.classList.remove('popover-closed-nojs');
buttonSubcatalog.classList.remove('button-subcatalog-opened-nojs');

buttonSubcatalog.addEventListener('click', function () {
  if (catalogPopover.classList.contains('popover-closed')) {
    catalogPopover.classList.remove('popover-closed');
    catalogPopover.classList.add('popover-opened');
    buttonSubcatalog.classList.remove('.button-subcatalog-opened');
    buttonSubcatalog.classList.add('button-subcatalog-closed');
  } else {
    catalogPopover.classList.add('popover-closed');
    catalogPopover.classList.remove('popover-opened');
    buttonSubcatalog.classList.remove('.button-subcatalog-closed');
    buttonSubcatalog.classList.add('button-subcatalog-opened');
  }
});
  • Вопрос задан
  • 50 просмотров
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
@Floatname
Потому что у вас тут точка лишняя
buttonSubcatalog.classList.remove('.button-subcatalog-closed');
и вот тут
buttonSubcatalog.classList.remove('.button-subcatalog-opened');


Должно быть:
buttonSubcatalog.classList.remove('button-subcatalog-closed');
buttonSubcatalog.classList.remove('button-subcatalog-opened');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
Wanted. Москва
от 250 000 до 400 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
22 янв. 2025, в 18:42
1000 руб./за проект
22 янв. 2025, в 18:00
15000 руб./за проект
22 янв. 2025, в 17:57
2000 руб./в час