javascript42
Главная
Все учебники
Блог
Учебник tingle.js
Введение
Зачем нужна tingle.js
История создания библиотеки
Преимущества перед альтернативами
Установка и подключение
Совместимость с браузерами
Зависимости и требования
Основы работы с модальными окнами
Создание первого модального окна
Методы инициализации
Базовые параметры конфигурации
Открытие и закрытие окон
Управление видимостью
Жизненный цикл модального окна
Конфигурация и параметры
Параметр footer и работа с кнопками
Настройка closeMethods
Управление cssClass
Параметры closeLabel и closeLabelAccessibility
Работа с onOpen и onClose колбэками
Параметр beforeClose
Настройка stickyFooter
Опция overlayClose
Параметр closeOnEscape
Настройка beforeOpen
Работа с содержимым
Добавление HTML-контента
Динамическая загрузка содержимого
Работа с текстовыми данными
Встраивание форм
Добавление изображений и медиа
Работа со списками и таблицами
Очистка содержимого
Управление кнопками
Создание кнопок в footer
Типы кнопок и их классы
Обработчики событий кнопок
Динамическое добавление кнопок
Удаление кнопок
Кастомизация внешнего вида кнопок
Кнопки с иконками
Стилизация и внешний вид
Базовые CSS-классы библиотеки
Переопределение стилей
Создание собственных тем
Адаптивный дизайн
Работа с z-index
Анимации появления и скрытия
Кастомизация оверлея
Стилизация футера и заголовка
События и колбэки
Обзор системы событий
Колбэк onOpen
Колбэк onClose
Колбэк beforeOpen
Колбэк beforeClose
Передача данных через колбэки
Цепочки событий
Отмена действий через колбэки
Методы API
Метод open
Метод close
Метод destroy
Метод setContent
Метод getContent
Метод setFooterContent
Метод getFooterContent
Метод addFooterBtn
Метод resize
Метод isOpen
Метод checkOverflow
Продвинутые техники
Множественные модальные окна
Вложенные модальные окна
Модальные окна поверх модальных окон
Программное управление фокусом
Блокировка прокрутки страницы
Работа с iframe внутри модальных окон
Ленивая загрузка контента
Предзагрузка модальных окон
Формы в модальных окнах
Размещение форм
Валидация данных
Обработка отправки форм
Предотвращение закрытия при незаполненных полях
AJAX-отправка из модальных окон
Обработка ошибок валидации
Мультишаговые формы
Доступность
ARIA-атрибуты
Управление с клавиатуры
Фокус-ловушка
Скринридеры и семантика
Метки для кнопок закрытия
Контрастность и читаемость
Навигация по Tab
Работа с медиа-контентом
Встраивание видео
Работа с YouTube и Vimeo
Галереи изображений
Аудио-проигрыватели
Адаптивные медиа-элементы
Предзагрузка медиа-контента
Производительность
Оптимизация загрузки
Управление памятью
Уничтожение неиспользуемых экземпляров
Минимизация перерисовок
Отложенная инициализация
Профилирование и отладка
Работа с большим контентом
Интеграция с фреймворками
Использование в React
Интеграция с Vue.js
Работа с Angular
Подключение в Svelte
Использование с jQuery
Работа с TypeScript
Типизация и интерфейсы
Мобильная адаптация
Особенности на мобильных устройствах
Тач-события
Полноэкранные модальные окна на мобильных
Виртуальная клавиатура
Ориентация экрана
Свайп-жесты
Производительность на слабых устройствах
Серверный рендеринг
SSR и tingle.js
Гидратация модальных окон
Проверка окружения
Работа с Next.js
Использование в Nuxt.js
Предотвращение ошибок на сервере
Расширение функционала
Создание плагинов
Обертки и расширения
Собственные методы
Наследование класса
Миксины и композиция
Переиспользуемые компоненты
Тестирование
Unit-тестирование модальных окон
Интеграционные тесты
E2E-тестирование
Моки и стабы
Тестирование событий
Тестирование доступности
Автоматизация тестов
Отладка и решение проблем
Типичные ошибки
Конфликты со стилями
Проблемы с z-index
Дебаггинг событий
Утечки памяти
Проблемы с производительностью
Инструменты разработчика
Миграция и обновление
Обновление версий библиотеки
Breaking changes
Миграция с других библиотек
Рефакторинг существующего кода
Обратная совместимость
Безопасность
XSS и внедрение кода
Санитизация контента
Content Security Policy
Защита от clickjacking
Безопасная работа с пользовательским вводом