Как добавить класс к текущей странице
Необходимо чтобы при переходе со страницы на страницу класс current добавлялся на текущую страницу. При этом убирался со страницы, которая уже закрыта.
Как это сделать с помощью JS?
<div class="menu__container">
<nav class="menu__nav">
<ul class="menu__list list">
<li class="menu__item">
<a href="./index.html" class="menu__link current">ГОЛОВНА</a>
</li>
<li class="menu__item">
<a href="" class="menu__link">ПОСЛУГИ</a>
</li>
<li class="menu__subitem">
<a href="./modeling.html" class="menu__sublink">3D Моделювання</a>
</li>
<li class="menu__subitem">
<a href="./scanning.html" class="menu__sublink">3D Сканування</a>
</li>
<li class="menu__subitem">
<a href="./print.html" class="menu__sublink">3D Друк</a>
</li>
<li class="menu__item">
<a href="./order.html" class="menu__link">ЗАМОВИТИ</a>
</li>
<li class="menu__item">
<a href="./contacts.html" class="menu__link">КОНТАКТИ</a>
</li>
</ul>
</nav>
</div>
Ответы (1 шт):
Автор решения: Проста Miha
→ Ссылка
Вы можете использовать ссылку на вашу страницу как опору, но вы должны будете для каждой ссылке добавить id которое будет названия файла на который ведёт ссылка.
Вот пример:
let href = window.location.href;
let currentPage = href.substring(href.lastIndexOf('/') + 1).replace('.html', '') ?? 'undefined';
let currentPageLink = document.querySelector('#' + currentPage);
if (currentPageLink) {
currentPageLink.classList.add('current');
}
<div class="menu__container">
<nav class="menu__nav">
<ul class="menu__list list">
<li class="menu__item">
<a href="./index.html" class="menu__link current" id="index">ГОЛОВНА</a>
</li>
<li class="menu__item">
<a href="./services.html" class="menu__link" id="services">ПОСЛУГИ</a>
</li>
<li class="menu__subitem">
<a href="./modeling.html" class="menu__sublink" id="modeling">3D Моделювання</a>
</li>
<li class="menu__subitem">
<a href="./scanning.html" class="menu__sublink" id="scanning">3D Сканування</a>
</li>
<li class="menu__subitem">
<a href="./print.html" class="menu__sublink" id="print">3D Друк</a>
</li>
<li class="menu__item">
<a href="./order.html" class="menu__link" id="order">ЗАМОВИТИ</a>
</li>
<li class="menu__item">
<a href="./contacts.html" class="menu__link" id="scratch_1">КОНТАКТИ</a>
</li>
</ul>
</nav>
</div>