Библиотека Featherlight предоставляет лёгкий и
гибкий способ отображения модальных окон в веб-приложениях. Один из
ключевых параметров, обеспечивающих удобство работы с динамическим
контентом, — это loading. Он отвечает за
поведение окна в момент, когда контент ещё загружается, позволяя
показывать индикатор загрузки или временный контент до полной готовности
данных.
loadingПараметр loading используется для отображения
временного состояния модального окна до того, как будет
загружен основной контент. В стандартной конфигурации Featherlight можно
определить текст, HTML-разметку или функцию, возвращающую HTML, которая
будет показана пользователю во время загрузки.
Это особенно важно при работе с асинхронными источниками данных, например:
Использование loading позволяет избежать пустого окна и
улучшает пользовательский опыт.
Параметр задается при инициализации окна через
$.featherlight() или в опциях при
вызове:
$.featherlight('content.html', {
loading: 'Загрузка...'
});
В этом примере текст "Загрузка..." будет отображён до
полной загрузки содержимого content.html.
Параметр loading может быть:
loading: '<div class="spinner"></div> Подождите...'
loading: function() {
return '<div class="spinner"></div> Загружаем данные...';
}
loading тесно связан с
beforeOpen,
afterContent и
afterOpen:
beforeOpen вызывается перед
отображением окна. Здесь можно подготовить контент, но индикатор
loading ещё не отображён.afterContent срабатывает после вставки
основного контента. На этом этапе индикатор loading
автоматически скрывается.afterOpen срабатывает после того, как
окно полностью открылось, включая замену загрузочного индикатора на
основной контент.Пример:
$.featherlight('content.html', {
loading: '<div class="spinner"></div> Пожалуйста, подождите...',
beforeOpen: function(event) {
console.log('Модальное окно готовится к открытию');
},
afterContent: function(event) {
console.log('Основной контент загружен, индикатор скрыт');
}
});
Чаще всего loading используется вместе с AJAX или
динамическим формированием HTML. Featherlight автоматически показывает
содержимое параметра loading до завершения загрузки:
$.featherlight({
ajax: 'data.html',
loading: '<div class="spinner"></div> Загрузка данных...',
});
Последовательность действий:
loading.data.html.loading
заменяется на HTML из ответа.Если AJAX-запрос занимает значительное время, индикатор обеспечивает визуальную обратную связь пользователю.
Для создания более сложных индикаторов можно использовать
CSS-анимации или библиотеки спиннеров. Featherlight позволяет вставлять
любой HTML-код через loading:
loading: `
<div class="custom-loader">
<div class="dot dot1"></div>
<div class="dot dot2"></div>
<div class="dot dot3"></div>
Загрузка...
</div>
`
CSS-анимация обеспечит плавное движение точек, создавая эффект активного ожидания.
loading
может быть виден очень короткое время или даже не появиться.loading индивидуально для каждого вызова.loading, чтобы
избежать пустого или мерцающего контента.loading можно включать
динамические сообщения в зависимости от времени
загрузки или контекста вызова.Параметр loading является важным инструментом для
повышения UX при работе с модальными окнами Featherlight. Он
обеспечивает информативность интерфейса, улучшает
восприятие контента и упрощает работу с асинхронными данными.