@dismalchange

Как сделать активное меню с помощью JS?

В чем ошибка в коде, хочу сделать активный пункт меню, чтобы он выделялся черным
HTML:
<nav class="main_menu">
           <div class="link">
               <a id="Main" href="#">Главная</a>
               <a id="Delivery" href="#">Доставка</a>
               <a id="Guarantee" href="#">Гарантия</a>
               <a id="Catalog" href="#">Каталог</a>
           </div>
               </nav>

CSS:
.link {
    position: absolute;
    left: 300px;
    top: 78px;
}
.link a:hover {
    border-top: 2px solid #377771;
}

#Main, #Delivery, #Guarantee, #Catalog {
    font-family: "Proza Libre", sans-serif;
    font-weight: 400;
    color: #377771;
    text-decoration: none;
    font-size: 24px;
    margin-right: 45px;
}


.menu {
    position: relative;
    width: 100%;
    height: 110px;
}
.link a.active {
    color: #000000;
}

JS:
var menuLinks = document.querySelectorAll(".link a");
for (var i = 0; i < menuLinks.length; i++) {
    menuLinks[i].addEventListener("click", function() {
        for (var j = 0; j < menuLinks.length; j++) {
            menuLinks[j].classList.remove("active");
        }
        this.classList.add("active");
    });
}
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
amorphis
@amorphis
Технолог в Студии Артемия Лебедева
У вас стили прописанные для айдишников #Main, #Delivery, #Guarantee, #Catalog перебивают по весу стили прописанные для классов. Почитать про это можно вот тут: Specificity.
Замените всё на классы, и тогда будет работать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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