Tingle.js предоставляет несколько удобных способов для организации информации в виде списков. Хотя основное назначение этой библиотеки — создание модальных окон, она предоставляет гибкие возможности для отображения данных в виде списков и таблиц, используя простые HTML-элементы и CSS-классы.
Для начала создадим базовую структуру модального окна с простым списком:
<div id="modal" class="tingle-modal">
<div class="tingle-modal-box">
<div class="tingle-modal-header">
<h2>Список задач</h2>
</div>
<div class="tingle-modal-body">
<ul>
<li>Задача 1</li>
<li>Задача 2</li>
<li>Задача 3</li>
</ul>
</div>
<div class="tingle-modal-footer">
<button class="tingle-btn tingle-btn--primary">Закрыть</button>
</div>
</div>
</div>
С помощью tingle-modal создаётся модальное окно, а
внутри него — стандартный HTML-список. Можно также использовать классы
Tingle для стилизации кнопок и заголовков. Это достаточно простая
структура, но она уже предоставляет функциональность модального окна с
отображением списка.
Для того чтобы модальное окно работало корректно, необходимо подключить саму библиотеку Tingle.js и инициализировать модальное окно в Jav * aScript:
<script src="https://cdn.jsdelivr.net/npm/tingle.js@0.15.0/dist/tingle.min.js"></script>
<script>
var modal = new tingle.modal({
closeMethods: ['overlay', 'button', 'escape'],
closeLabel: "Закрыть"
});
modal.setContent(document.querySelector('#modal').innerHTML);
modal.open();
</script>
Здесь важно отметить, что с помощью метода
modal.setContent можно динамически задавать содержимое
модального окна, например, используя HTML-разметку. Модальное окно
откроется при вызове метода modal.open().
Хотя Tingle.js обеспечивает базовую стилизацию для модальных окон, для более сложных и адаптированных решений можно использовать дополнительные CSS-правила. Например, чтобы изменить внешний вид списка внутри модального окна, можно добавить стили, улучшая восприятие:
.tingle-modal-body ul {
list-style-type: none;
padding: 0;
}
.tingle-modal-body li {
padding: 10px;
border-bottom: 1px solid #ddd;
}
.tingle-modal-body li:last-child {
border-bottom: none;
}
Эти стили удаляют стандартные маркеры списка и добавляют отступы и разделители для улучшения визуального восприятия.
Для интерактивности можно добавить обработчики событий для элементов списка. Например, при клике на пункт списка можно выполнить какое-то действие:
<ul id="task-list">
<li>Задача 1</li>
<li>Задача 2</li>
<li>Задача 3</li>
</ul>
<script>
document.querySelectorAll('#task-list li').forEach(function(item) {
item.addEventListener('click', function() {
alert('Вы выбрали: ' + item.textContent);
});
});
</script>
Этот код позволяет пользователю кликать по элементам списка, а при каждом клике выводить сообщение с текстом выбранной задачи.
Таблицы могут быть полезны для представления структурированных
данных. Для создания таблицы в Tingle.js достаточно использовать
стандартный HTML-элемент <table>. Рассмотрим пример
создания модального окна с таблицей:
<div id="modal-table" class="tingle-modal">
<div class="tingle-modal-box">
<div class="tingle-modal-header">
<h2>Таблица с данными</h2>
</div>
<div class="tingle-modal-body">
<table>
<thead>
<tr>
<th>Имя</th>
<th>Возраст</th>
<th>Город</th>
</tr>
</thead>
<tbody>
<tr>
<td>Иван</td>
<td>25</td>
<td>Москва</td>
</tr>
<tr>
<td>Мария</td>
<td>30</td>
<td>Питер</td>
</tr>
</tbody>
</table>
</div>
<div class="tingle-modal-footer">
<button class="tingle-btn tingle-btn--primary">Закрыть</button>
</div>
</div>
</div>
Для этого не требуется никаких дополнительных настроек, кроме как разметки самой таблицы внутри модального окна.
Для более профессиональной стилизации таблицы в модальном окне можно применить следующие CSS-правила:
.tingle-modal-body table {
width: 100%;
border-collapse: collapse;
}
.tingle-modal-body th, .tingle-modal-body td {
padding: 10px;
border: 1px solid #ddd;
text-align: left;
}
.tingle-modal-body th {
background-color: #f4f4f4;
}
Эти правила улучшат визуальную составляющую таблицы, сделав её более читабельной и аккуратной.
Tingle.js также позволяет динамически изменять содержимое как списков, так и таблиц. Для обновления данных внутри модального окна можно использовать методы JavaScript. Например, чтобы заменить данные таблицы:
var newRow = '<tr><td>Алексей</td><td>28</td><td>Новосибирск</td></tr>';
document.querySelector('tbody').innerHTML += newRow;
Этот код добавляет новую строку в таблицу, обновляя её содержимое без необходимости перезагружать страницу.
Если требуется динамически удалять элементы списка или строки таблицы, можно добавить соответствующие обработчики событий. Например, для удаления строки из таблицы:
<tr>
<td>Иван</td>
<td>25</td>
<td>Москва</td>
<td><button class="delete-btn">Удалить</button></td>
</tr>
<script>
document.querySelectorAll('.delete-btn').forEach(function(button) {
button.addEventListener('click', function() {
button.closest('tr').remove();
});
});
</script>
Этот код добавляет кнопку для удаления строки, и при её нажатии строка будет удалена.
Использование Tingle.js для работы со списками и таблицами позволяет создать динамичные и удобные интерфейсы, интегрируя списки и таблицы внутри модальных окон. С помощью простых HTML-элементов и возможностей библиотеки можно легко манипулировать данными, обновлять содержимое и добавлять интерактивность, делая интерфейс более гибким и привлекательным.