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
@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');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы