MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 469: | Строка 469: | ||
// Присвоение ID категориям и пунктам меню | // Присвоение ID категориям и пунктам меню | ||
function assignIds() { | function assignIds() { | ||
categories. | for (var i = 0; i < categories.length; i++) { | ||
var category = categories[i]; | |||
var categoryText = category.textContent || category.innerText; | var categoryText = category.textContent || category.innerText; | ||
var categoryId = generateIdFromText(categoryText); | var categoryId = generateIdFromText(categoryText); | ||
category.setAttribute('id', categoryId); | category.setAttribute('id', categoryId); | ||
menus[ | var menu = menus[i]; | ||
var menuItems = menu.querySelectorAll('div'); | |||
for (var j = 0; j < menuItems.length; j++) { | |||
var menuItem = menuItems[j]; | |||
var menuItemText = menuItem.textContent || menuItem.innerText; | var menuItemText = menuItem.textContent || menuItem.innerText; | ||
menuItem.setAttribute('id', | var menuItemId = generateIdFromText(menuItemText); | ||
} | menuItem.setAttribute('id', menuItemId); | ||
} | } | ||
} | |||
} | } | ||
| Строка 485: | Строка 490: | ||
// Удаление класса active у всех переданных элементов | // Удаление класса active у всех переданных элементов | ||
function clearActiveElements(elements) { | function clearActiveElements(elements) { | ||
elements. | for (var i = 0; i < elements.length; i++) { | ||
elements[i].classList.remove('active'); | |||
} | } | ||
} | } | ||
| Строка 499: | Строка 504: | ||
if (selectedCategory) { | if (selectedCategory) { | ||
selectedCategory.classList.add('active'); | selectedCategory.classList.add('active'); | ||
var selectedMenu = document.querySelector( | var categoryClass = selectedCategory.classList[0]; | ||
var selectedMenu = document.querySelector('.' + categoryClass + '-menu'); | |||
if (selectedMenu) { | if (selectedMenu) { | ||
selectedMenu.classList.add('active'); | selectedMenu.classList.add('active'); | ||
| Строка 516: | Строка 522: | ||
if (menuItem) { | if (menuItem) { | ||
var content = document.querySelector( | var contentClass = menuItem.className + '-content'; | ||
var content = document.querySelector('.' + contentClass); | |||
if (content) { | if (content) { | ||
content.classList.add('active'); | content.classList.add('active'); | ||
| Строка 526: | Строка 533: | ||
// Обновление состояния стрелок (активные/неактивные) | // Обновление состояния стрелок (активные/неактивные) | ||
function updateArrowStates() { | function updateArrowStates() { | ||
var prevArrow = document.getElementById('prev-category'); | |||
var nextArrow = document.getElementById('next-category'); | |||
prevArrow.classList. | if (currentCategoryIndex === 0) { | ||
prevArrow.classList.add('disabled'); | |||
prevArrow.style.pointerEvents = 'none'; // Отключение кликов | |||
} else { | |||
prevArrow.classList.remove('disabled'); | |||
prevArrow.style.pointerEvents = 'auto'; // Включение кликов | |||
} | |||
if (currentCategoryIndex === categories.length - 1) { | |||
nextArrow.classList.add('disabled'); | |||
nextArrow.style.pointerEvents = 'none'; // Отключение кликов | |||
} else { | |||
nextArrow.classList.remove('disabled'); | |||
nextArrow.style.pointerEvents = 'auto'; // Включение кликов | |||
} | |||
} | } | ||
| Строка 539: | Строка 556: | ||
document.getElementById('prev-category').addEventListener('click', function() { | document.getElementById('prev-category').addEventListener('click', function() { | ||
if (currentCategoryIndex > 0) { | if (currentCategoryIndex > 0) { | ||
switchCategory( | currentCategoryIndex = currentCategoryIndex - 1; | ||
switchCategory(currentCategoryIndex); // Переключение на новую категорию | |||
} | } | ||
}); | }); | ||
| Строка 545: | Строка 563: | ||
document.getElementById('next-category').addEventListener('click', function() { | document.getElementById('next-category').addEventListener('click', function() { | ||
if (currentCategoryIndex < categories.length - 1) { | if (currentCategoryIndex < categories.length - 1) { | ||
switchCategory( | currentCategoryIndex = currentCategoryIndex + 1; | ||
switchCategory(currentCategoryIndex); // Переключение на новую категорию | |||
} | } | ||
}); | }); | ||
| Строка 556: | Строка 575: | ||
// Клик по элементам меню | // Клик по элементам меню | ||
menuItems. | for (var i = 0; i < menuItems.length; i++) { | ||
menuItems[i].addEventListener('click', function() { | |||
switchContent(this); | switchContent(this); // Переключение контента при клике на пункт меню | ||
}); | }); | ||
} | } | ||
document.querySelector('.navigation__menu-toggle').addEventListener('click', function() { | document.querySelector('.navigation__menu-toggle').addEventListener('click', function() { | ||
document.querySelector('.navigation__menu-container').classList.toggle('active'); | var menu = document.querySelector('.navigation__menu-container'); | ||
this.classList.toggle('active'); | menu.classList.toggle('active'); // Переключение класса для показа/скрытия меню | ||
this.classList.toggle('active'); // Переключение для перемещения кнопки | |||
}); | }); | ||
} | } | ||