MediaWiki:Common.js: различия между версиями

мНет описания правки
мНет описания правки
Строка 570: Строка 570:
var categories = document.querySelectorAll('.categories div');
var categories = document.querySelectorAll('.categories div');
var menus = document.querySelectorAll('.menu');
var menus = document.querySelectorAll('.menu');
var contentDivs = document.querySelectorAll('.content div');
var contentDivs = document.querySelectorAll('.content > div');
var menuItems = document.querySelectorAll('.menu div');
var menuItems = document.querySelectorAll('.menu div');
var currentCategoryIndex = 0; // Индекс текущей активной категории
var currentCategoryIndex = 0; // Индекс текущей активной категории
Строка 592: Строка 592:
}
}


function switchCategory(categoryClass) {
function switchCategory(index) {
clearActiveMenu();
clearActiveMenu();
clearActiveContent();
clearActiveContent();
var selectedMenu = document.querySelector('.' + categoryClass + '-menu');
if (selectedMenu) {
// Скрыть все категории
selectedMenu.classList.add('active');
categories.forEach(category => {
var firstParagraph = selectedMenu.querySelector('div');
category.classList.remove('active');
if (firstParagraph) {
category.style.display = 'none';  // Скрываем все категории
switchContent(firstParagraph);
});
// Установить новую активную категорию
var selectedCategory = categories[index];
if (selectedCategory) {
selectedCategory.classList.add('active');
selectedCategory.style.display = 'block';  // Отображаем новую активную категорию
var categoryClass = selectedCategory.classList[0]; // Получаем класс категории
var selectedMenu = document.querySelector('.' + categoryClass + '-menu');
if (selectedMenu) {
selectedMenu.classList.add('active'); // Активируем меню соответствующей категории
var firstParagraph = selectedMenu.querySelector('div');
if (firstParagraph) {
switchContent(firstParagraph); // Открываем первый пункт меню
}
}
}
}
}
Строка 619: Строка 634:
document.getElementById('prev-category').addEventListener('click', function() {
document.getElementById('prev-category').addEventListener('click', function() {
currentCategoryIndex = (currentCategoryIndex - 1 + categories.length) % categories.length; // Переход на предыдущую категорию
currentCategoryIndex = (currentCategoryIndex - 1 + categories.length) % categories.length; // Переход на предыдущую категорию
switchCategory(categories[currentCategoryIndex].classList[0]); // Переключаем на новую категорию
switchCategory(currentCategoryIndex); // Переключаем на новую категорию
});
});


document.getElementById('next-category').addEventListener('click', function() {
document.getElementById('next-category').addEventListener('click', function() {
currentCategoryIndex = (currentCategoryIndex + 1) % categories.length; // Переход на следующую категорию
currentCategoryIndex = (currentCategoryIndex + 1) % categories.length; // Переход на следующую категорию
switchCategory(categories[currentCategoryIndex].classList[0]); // Переключаем на новую категорию
switchCategory(currentCategoryIndex); // Переключаем на новую категорию
});
});


// Инициализация: открываем первую категорию и первый пункт
// Инициализация: открываем первую категорию и первый пункт
var firstCategory = categories.length > 0 ? categories[0].classList[0] : null;
if (categories.length > 0) {
if (firstCategory) {
switchCategory(currentCategoryIndex); // Отображаем первую категорию
switchCategory(firstCategory);
}
}


// Если есть клики на категории
// Клик по элементам категорий
for (var i = 0; i < categories.length; i++) {
for (var i = 0; i < categories.length; i++) {
categories[i].addEventListener('click', function() {
categories[i].addEventListener('click', function() {