Tingle.js — это библиотека, предназначенная для создания модальных окон с адаптивным дизайном, которые можно легко интегрировать в проекты на JavaScript. Она предоставляет простые в использовании средства для создания красивых и функциональных всплывающих окон с минимальными усилиями.
Для начала работы с tingle.js необходимо установить её в проект. Это можно сделать через npm или загрузив библиотеку с официального сайта.
Для установки через npm выполните команду:
npm install tingle.js
Либо можно добавить ссылку на скрипт и стили в HTML-документ:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tingle.js@0.15.0/dist/tingle.min.css">
<script src="https://cdn.jsdelivr.net/npm/tingle.js@0.15.0/dist/tingle.min.js"></script>
Для того чтобы создать простое модальное окно, достаточно
инициализировать объект tingle.modal() и вызвать его метод
.open(). Модальное окно будет отображено на экране с
плавной анимацией.
var modal = new tingle.modal({
closeLabel: "Закрыть"
});
modal.setContent('<h1>Пример модального окна</h1><p>Содержимое окна.</p>');
modal.open();
Этот код создаст модальное окно с заголовком “Пример модального окна” и текстом “Содержимое окна”. Внешний вид окна уже будет стилизован по умолчанию.
Tingle.js предоставляет несколько опций, которые позволяют настроить поведение и внешний вид модального окна. Основные из них:
closeLabel: текст на кнопке закрытия (по умолчанию —
“Закрыть”).cssClass: добавляет пользовательские классы для
стилизации.onClose: функция обратного вызова, которая срабатывает
при закрытии окна.sticky: флаг, который позволяет фиксировать окно на
экране при скроллинге.Пример настройки модального окна с пользовательскими классами:
var modal = new tingle.modal({
closeLabel: "Закрыть",
cssClass: ['custom-modal', 'another-class'],
sticky: true,
onClose: function() {
console.log("Модальное окно закрыто");
}
});
modal.setContent('<h2>Моё кастомное окно</h2><p>Настроено с уникальным стилем.</p>');
modal.open();
.close(). Важно помнить, что закрытие не
всегда должно быть активируемо пользователем напрямую. В некоторых
случаях можно ограничить закрытие, например, с помощью флага
sticky.modal.close();
.open() откроет
окно с анимацией. Он также может быть использован с дополнительными
параметрами для специфической настройки перехода.modal.open();
onClose.modal.onCl ose = function() {
alert('Окно закрыто');
};
Tingle.js автоматически адаптирует модальные окна для различных устройств, поддерживая мобильные версии. Это делает её отличным выбором для сайтов, на которых требуется поддержка различных экранов и разрешений.
Стилизация окон осуществляется с помощью стандартных CSS-свойств. Вы можете настроить стиль через классы или инлайновые стили. Также, библиотека позволяет подключать пользовательские стили для более глубокой кастомизации.
Для этого можно задать необходимые классы или использовать предустановленные CSS-свойства, такие как:
.custom-modal .tingle-modal {
border-radius: 10px;
background-color: #f8f8f8;
}
Tingle.js позволяет динамически менять содержимое окна. Для этого
можно использовать метод .setContent(), который обновит
внутреннее содержимое модального окна на лету. Это полезно, когда
необходимо отображать различные данные в одном и том же модальном
окне.
Пример:
var modal = new tingle.modal();
modal.setContent('<h2>Первоначальное содержимое</h2>');
modal.open();
// Через некоторое время меняем содержимое
setTimeout(function() {
modal.setContent('<h2>Обновлённое содержимое</h2>');
}, 3000);
Если на странице требуется несколько модальных окон, tingle.js поддерживает создание и управление несколькими экземплярами модальных окон одновременно. При этом каждое окно работает независимо друг от друга.
var modal1 = new tingle.modal();
modal1.setContent('<h1>Первое окно</h1>');
modal1.open();
var modal2 = new tingle.modal();
modal2.setContent('<h1>Второе окно</h1>');
modal2.open();
Интеграция tingle.js в проект Next.js не вызывает сложностей. Главное — корректно подключить скрипты и стили в проект. Для этого можно использовать встроенные механизмы Next.js для добавления внешних ресурсов.
Head:import Head from 'next/head';
const MyPage = () => {
return (
<div>
<Head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/tingle.js@0.15.0/dist/tingle.min.css" />
<script src="https://cdn.jsdelivr.net/npm/tingle.js@0.15.0/dist/tingle.min.js"></script>
</Head>
<h1>Моя страница с модальным окном</h1>
</div>
);
};
import { useEffect } from 'react';
const ModalComponent = () => {
useEffect(() => {
const modal = new tingle.modal({
closeLabel: "Закрыть"
});
modal.setContent('<h2>Контент модального окна</h2>');
modal.open();
}, []);
return null;
};
export default ModalComponent;
Этот пример демонстрирует, как использовать библиотеку для создания
модального окна при рендеринге компонента. useEffect
гарантирует, что модальное окно откроется после загрузки компонента.
Tingle.js — это лёгкий и гибкий инструмент для создания модальных окон, который идеально подходит для интеграции в проекты на JavaScript и Next.js. Благодаря простоте использования и множеству настроек, библиотека позволяет создавать стильные и функциональные окна с минимумом кода.