| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- // Header Mobile Menu Toggle
- document.addEventListener("DOMContentLoaded", function() {
- const burger = document.querySelector(".header__burger");
- const nav = document.querySelector(".header__nav");
- const body = document.body;
- if (burger && nav) {
- burger.addEventListener("click", function() {
- // Toggle active classes
- burger.classList.toggle("active");
- nav.classList.toggle("active");
- body.classList.toggle("menu-open");
- });
- // Close menu when clicking on menu links
- const menuLinks = nav.querySelectorAll(".header__menu-link");
- menuLinks.forEach(link => {
- link.addEventListener("click", function() {
- burger.classList.remove("active");
- nav.classList.remove("active");
- body.classList.remove("menu-open");
- });
- });
- // Close menu on window resize if opened
- window.addEventListener("resize", function() {
- if (window.innerWidth > 768) {
- burger.classList.remove("active");
- nav.classList.remove("active");
- body.classList.remove("menu-open");
- }
- });
- }
- // Находим все таблицы внутри блока с классом text
- const tables = document.querySelectorAll('.text table');
- if(tables){
- tables.forEach(table => {
- // Проверяем, есть ли у таблицы класс no-table-wrapper
- if (!table.classList.contains('no-table-wrapper')) {
- // Создаем внешний wrapper для скролла
- const scrollWrapper = document.createElement('div');
- scrollWrapper.classList.add('table-wrapper-scroll');
- // Создаем внутренний wrapper для стилизации
- const wrapper = document.createElement('div');
- wrapper.classList.add('table-wrapper');
- // Оборачиваем таблицу
- table.parentNode.insertBefore(scrollWrapper, table);
- scrollWrapper.appendChild(wrapper);
- wrapper.appendChild(table);
- // Проверяем, есть ли у таблицы элемент caption
- if (table.querySelector('caption')) {
- // Если caption есть, добавляем к scrollWrapper класс 'has-caption'
- scrollWrapper.classList.add('has-caption');
- }
- // Получаем первую строку таблицы
- const firstRow = table.querySelector('tr');
- // Подсчитываем количество столбцов в первой строке
- const columnCount = firstRow ? firstRow.children.length : 0;
- // Если столбцов больше трех, добавляем класс 'large-table'
- if (columnCount > 3) {
- wrapper.classList.add('large-table');
- }
- }
- });
- }
- // FAQ Accordion
- const faqItems = document.querySelectorAll('.faq__item');
- if (faqItems) {
- faqItems.forEach(item => {
- const question = item.querySelector('.faq__question');
- const answer = item.querySelector('.faq__answer');
- if (question && answer) {
- question.addEventListener('click', function() {
- // Закрываем все остальные FAQ
- faqItems.forEach(otherItem => {
- if (otherItem !== item) {
- otherItem.classList.remove('active');
- const otherAnswer = otherItem.querySelector('.faq__answer');
- if (otherAnswer) {
- otherAnswer.style.maxHeight = null;
- }
- }
- });
- // Переключаем текущий FAQ
- item.classList.toggle('active');
- if (item.classList.contains('active')) {
- answer.style.maxHeight = answer.scrollHeight + 'px';
- } else {
- answer.style.maxHeight = null;
- }
- });
- }
- });
- }
- // Table of Contents toggle
- const toc = document.querySelector('.toc');
- const tocHeader = document.querySelector('.toc__header');
- const tocContent = document.querySelector('.toc__content');
- if (toc && tocHeader && tocContent) {
- tocHeader.addEventListener('click', function() {
- toc.classList.toggle('active');
- if (toc.classList.contains('active')) {
- tocContent.style.maxHeight = tocContent.scrollHeight + 'px';
- } else {
- tocContent.style.maxHeight = null;
- }
- });
- }
- // Table of Contents smooth scroll
- const tocLinks = document.querySelectorAll('.toc__link');
- if (tocLinks) {
- tocLinks.forEach(link => {
- link.addEventListener('click', function(e) {
- e.preventDefault();
- const targetId = this.getAttribute('href');
- const targetElement = document.querySelector(targetId);
- if (targetElement) {
- targetElement.scrollIntoView({
- behavior: 'smooth',
- block: 'start'
- });
- }
- });
- });
- }
- });
- //# sourceMappingURL=script.js.map
|