MediaWiki:Common.js: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 569: | Строка 569: | ||
var menuItems = document.querySelectorAll('.menu div'); | var menuItems = document.querySelectorAll('.menu div'); | ||
var currentCategoryIndex = 0; // Индекс текущей активной категории | var currentCategoryIndex = 0; // Индекс текущей активной категории | ||
function clearActiveContent() { | function clearActiveContent() { | ||
| Строка 601: | Строка 589: | ||
function switchCategory(index) { | function switchCategory(index) { | ||
clearActiveMenu(); | clearActiveMenu(); | ||
clearActiveContent(); | clearActiveContent(); | ||
// Удаляем класс active у всех категорий | |||
categories.forEach(function(category) { | categories.forEach(function(category) { | ||
category.classList.remove('active'); | category.classList.remove('active'); | ||
}); | }); | ||
// Устанавливаем новую активную категорию | |||
var selectedCategory = categories[index]; | var selectedCategory = categories[index]; | ||
if (selectedCategory) { | if (selectedCategory) { | ||
selectedCategory.classList.add('active'); | selectedCategory.classList.add('active'); // Добавляем класс active | ||
var categoryClass = selectedCategory.classList[0]; | var categoryClass = selectedCategory.classList[0]; // Получаем класс категории | ||
var selectedMenu = document.querySelector('.' + categoryClass + '-menu'); | var selectedMenu = document.querySelector('.' + categoryClass + '-menu'); | ||
if (selectedMenu) { | if (selectedMenu) { | ||
selectedMenu.classList.add('active'); | selectedMenu.classList.add('active'); // Активируем меню соответствующей категории | ||
var firstParagraph = selectedMenu.querySelector('div'); | var firstParagraph = selectedMenu.querySelector('div'); | ||
if (firstParagraph) { | if (firstParagraph) { | ||
switchContent(firstParagraph); | switchContent(firstParagraph); // Открываем первый пункт меню | ||
} | } | ||
} | } | ||
| Строка 644: | Строка 632: | ||
const nextArrow = document.getElementById('next-category'); | const nextArrow = document.getElementById('next-category'); | ||
// Если это первая категория, отключаем стрелку назад | |||
if (currentCategoryIndex === 0) { | if (currentCategoryIndex === 0) { | ||
prevArrow.classList.add('disabled'); | prevArrow.classList.add('disabled'); | ||
| Строка 652: | Строка 641: | ||
} | } | ||
// Если это последняя категория, отключаем стрелку вперёд | |||
if (currentCategoryIndex === categories.length - 1) { | if (currentCategoryIndex === categories.length - 1) { | ||
nextArrow.classList.add('disabled'); | nextArrow.classList.add('disabled'); | ||
| Строка 658: | Строка 648: | ||
nextArrow.classList.remove('disabled'); | nextArrow.classList.remove('disabled'); | ||
nextArrow.style.pointerEvents = 'auto'; | nextArrow.style.pointerEvents = 'auto'; | ||
} | } | ||
} | } | ||
| Строка 700: | Строка 667: | ||
// Инициализация: открываем первую категорию и первый пункт | // Инициализация: открываем первую категорию и первый пункт | ||
if (categories | if (categories.length > 0) { | ||
switchCategory( | switchCategory(currentCategoryIndex); // Отображаем первую категорию | ||
updateArrowStates(); // Обновляем состояние стрелок | updateArrowStates(); // Обновляем состояние стрелок | ||
} | } | ||
// Удаляем обработчики кликов на категории | |||
categories.forEach(function(category) { | categories.forEach(function(category) { | ||
category.addEventListener('click', function(event) { | category.addEventListener('click', function(event) { | ||
| Строка 711: | Строка 679: | ||
}); | }); | ||
// Клик по элементам меню | |||
for (var i = 0; i < menuItems.length; i++) { | for (var i = 0; i < menuItems.length; i++) { | ||
menuItems[i].addEventListener('click', function() { | menuItems[i].addEventListener('click', function() { | ||
| Строка 719: | Строка 688: | ||
document.querySelector('.menu-toggle').addEventListener('click', function() { | document.querySelector('.menu-toggle').addEventListener('click', function() { | ||
var menu = document.querySelector('.menu-container'); | var menu = document.querySelector('.menu-container'); | ||
menu.classList.toggle('active'); | menu.classList.toggle('active'); // Переключаем класс для показа/скрытия меню | ||
var toggleButton = document.querySelector('.menu-toggle'); | var toggleButton = document.querySelector('.menu-toggle'); | ||
toggleButton.classList.toggle('active'); | toggleButton.classList.toggle('active'); // Добавляем переключение для перемещения кнопки | ||
}); | }); | ||
} | } | ||
const currentPageTitle = document.title; | const currentPageTitle = document.title; | ||