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

мНет описания правки
мНет описания правки
Строка 572: Строка 572:
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; // Индекс текущей активной категории


// Очистить активные элементы контента
function clearActiveContent() {
function clearActiveContent() {
for (var i = 0; i < contentDivs.length; i++) {
for (var i = 0; i < contentDivs.length; i++) {
Строка 580: Строка 581:
}
}


// Очистить активное меню
function clearActiveMenu() {
function clearActiveMenu() {
for (var i = 0; i < menus.length; i++) {
for (var i = 0; i < menus.length; i++) {
Строка 586: Строка 588:
}
}


// Очистить активные элементы меню
function clearActiveMenuItems() {
function clearActiveMenuItems() {
for (var i = 0; i < menuItems.length; i++) {
for (var i = 0; i < menuItems.length; i++) {
Строка 592: Строка 595:
}
}


// Переключить категорию
function switchCategory(categoryClass) {
function switchCategory(categoryClass) {
clearActiveMenu();
clearActiveMenu();
Строка 605: Строка 609:
}
}


// Переключить контент внутри выбранной категории
function switchContent(menuItem) {
function switchContent(menuItem) {
clearActiveMenuItems();
clearActiveMenuItems();
Строка 626: Строка 631:
}
}


// Получаем класс текущей категории и переключаемся на неё
var categoryClass = categories[currentCategoryIndex].classList[0];
var categoryClass = categories[currentCategoryIndex].classList[0];
switchCategory(categoryClass);
switchCategory(categoryClass);
}
}


// Обработчики для стрелок переключения категорий
document.getElementById('prev-category').addEventListener('click', function() {
document.getElementById('prev-category').addEventListener('click', function() {
showCategory(currentCategoryIndex - 1);
showCategory(currentCategoryIndex - 1); // Переключиться на предыдущую категорию
});
});


document.getElementById('next-category').addEventListener('click', function() {
document.getElementById('next-category').addEventListener('click', function() {
showCategory(currentCategoryIndex + 1);
showCategory(currentCategoryIndex + 1); // Переключиться на следующую категорию
});
});


// Открытие первой категории и первого пункта
// Инициализация: показываем первую категорию по умолчанию
var firstCategory = categories.length > 0 ? categories[0].classList[0] : null;
if (categories.length > 0) {
if (firstCategory) {
showCategory(0);
switchCategory(firstCategory);
}
 
for (var i = 0; i < categories.length; i++) {
categories[i].addEventListener('click', function() {
var categoryClass = this.classList[0];
switchCategory(categoryClass);
});
}
 
for (var i = 0; i < menuItems.length; i++) {
menuItems[i].addEventListener('click', function() {
switchContent(this);
});
}
}
}
}