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

мНет описания правки
мНет описания правки
Строка 568: Строка 568:
// Функция для логики меню создаваемым модулем CategoryMenu
// Функция для логики меню создаваемым модулем CategoryMenu
function initCategorySwitcher() {
function initCategorySwitcher() {
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; // Индекс текущей активной категории


function clearActiveContent() {
    function clearActiveContent() {
for (var i = 0; i < contentDivs.length; i++) {
        for (var i = 0; i < contentDivs.length; i++) {
contentDivs[i].classList.remove('active');
            contentDivs[i].classList.remove('active');
}
        }
}
    }


function clearActiveMenu() {
    function clearActiveMenu() {
for (var i = 0; i < menus.length; i++) {
        for (var i = 0; i < menus.length; i++) {
menus[i].classList.remove('active');
            menus[i].classList.remove('active');
}
        }
}
    }


function clearActiveMenuItems() {
    function clearActiveMenuItems() {
for (var i = 0; i < menuItems.length; i++) {
        for (var i = 0; i < menuItems.length; i++) {
menuItems[i].classList.remove('active');
            menuItems[i].classList.remove('active');
}
        }
}
    }


function switchCategory(index) {
    function switchCategory(index) {
clearActiveMenu();
        clearActiveMenu();
clearActiveContent();
        clearActiveContent();
       
// Скрыть все категории
        // Удаляем класс active у всех категорий
categories.forEach(category => {
        categories.forEach(function(category) {
category.classList.remove('active');
            category.classList.remove('active');
category.style.display = 'none'; // Скрываем все категории
            category.style.display = 'none'; // Скрываем все категории
});
        });
// Установить новую активную категорию
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); // Открываем первый пункт меню
}
}
}
}


function switchContent(menuItem) {
        // Устанавливаем новую активную категорию
clearActiveMenuItems();
        var selectedCategory = categories[index];
clearActiveContent();
        if (selectedCategory) {
var contentClass = menuItem.className + '-content';
            selectedCategory.classList.add('active');
var content = document.querySelector('.' + contentClass);
            selectedCategory.style.display = 'block'; // Отображаем новую активную категорию
if (content) {
           
content.classList.add('active');
            var categoryClass = selectedCategory.classList[0]; // Получаем класс категории
menuItem.classList.add('active');
            var selectedMenu = document.querySelector('.' + categoryClass + '-menu');
}
            if (selectedMenu) {
}
                selectedMenu.classList.add('active'); // Активируем меню соответствующей категории
                var firstParagraph = selectedMenu.querySelector('div');
                if (firstParagraph) {
                    switchContent(firstParagraph); // Открываем первый пункт меню
                }
            }
        }
    }


// Обработчики для стрелок
    function switchContent(menuItem) {
document.getElementById('prev-category').addEventListener('click', function() {
        clearActiveMenuItems();
currentCategoryIndex = (currentCategoryIndex - 1 + categories.length) % categories.length; // Переход на предыдущую категорию
        clearActiveContent();
switchCategory(currentCategoryIndex); // Переключаем на новую категорию
        var contentClass = menuItem.className + '-content';
});
        var content = document.querySelector('.' + contentClass);
        if (content) {
            content.classList.add('active');
            menuItem.classList.add('active');
        }
    }


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


// Инициализация: открываем первую категорию и первый пункт
    document.getElementById('next-category').addEventListener('click', function() {
if (categories.length > 0) {
        currentCategoryIndex = (currentCategoryIndex + 1) % categories.length; // Переход на следующую категорию
switchCategory(currentCategoryIndex); // Отображаем первую категорию
        switchCategory(currentCategoryIndex); // Переключаем на новую категорию
}
    });


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


// Клик по элементам меню
    for (var i = 0; i < categories.length; i++) {
for (var i = 0; i < menuItems.length; i++) {
        categories[i].addEventListener('click', function() {
menuItems[i].addEventListener('click', function() {
            var categoryClass = this.classList[0];
switchContent(this);
            switchCategory(categoryClass);
});
        });
}
    }


document.querySelector('.menu-toggle').addEventListener('click', function() {
    for (var i = 0; i < menuItems.length; i++) {
var menu = document.querySelector('.menu-container');
        menuItems[i].addEventListener('click', function() {
menu.classList.toggle('active'); // Переключаем класс для показа/скрытия меню
            switchContent(this);
var toggleButton = document.querySelector('.menu-toggle');
        });
toggleButton.classList.toggle('active'); // Добавляем переключение для перемещения кнопки
    }
});
 
    document.querySelector('.menu-toggle').addEventListener('click', function() {
        var menu = document.querySelector('.menu-container');
        menu.classList.toggle('active'); // Переключаем класс для показа/скрытия меню
        var toggleButton = document.querySelector('.menu-toggle');
        toggleButton.classList.toggle('active'); // Добавляем переключение для перемещения кнопки
    });
}
}
const currentPageTitle = document.title;
const currentPageTitle = document.title;