Вставка изображений

SweetAlert — это мощная библиотека для отображения красивых и настраиваемых всплывающих окон (alert) в веб-приложениях. Одним из её полезных и часто используемых возможностей является вставка изображений в модальные окна. Этот функционал позволяет сделать интерфейс более информативным, интерактивным и визуально привлекательным.

Для вставки изображения в всплывающее окно SweetAlert используется параметр imageUrl. Этот параметр позволяет задать ссылку на изображение, которое будет отображено в окне уведомления. Также имеется параметр imageWidth, который позволяет управлять размером изображения.

Простой пример использования изображения:

Swal.fire({
  title: 'Уведомление',
  text: 'Это простое сообщение с изображением.',
  imageUrl: 'https://example.com/image.png',
  imageWidth: 200,  // ширина изображения
  imageHeight: 200, // высота изображения
  imageAlt: 'Пример изображения'
});

В данном примере всплывающее окно будет содержать изображение с заданными размерами и альтернативным текстом. Параметры imageWidth и imageHeight управляют размерами изображения, что позволяет гибко настраивать внешний вид окна.

Параметры для работы с изображениями

  1. imageUrl — указывает на URL изображения, которое будет отображено внутри окна. Это может быть путь к изображению на сервере или внешний URL.

  2. imageWidth — задаёт ширину изображения. Указанное значение может быть в пикселях или процентах. Например, можно указать 200px или 50% для динамического масштабирования.

  3. imageHeight — аналогично параметру imageWidth, этот параметр задаёт высоту изображения.

  4. imageAlt — текст, который будет отображаться в случае, если изображение не может быть загружено. Этот параметр также полезен для улучшения доступности (например, для пользователей с нарушениями зрения).

Пример с динамическим изменением изображения

SweetAlert позволяет не только вставлять статичные изображения, но и использовать динамические URL, что может быть полезно в случае, если нужно показывать разные изображения в зависимости от состояния приложения. Например:

Swal.fire({
  title: 'Статус',
  text: 'Загрузка данных...',
  imageUrl: isLoading ? 'https://example.com/loading.gif' : 'https://example.com/success.png',
  imageWidth: 100,
  imageHeight: 100
});

В этом примере в зависимости от состояния переменной isLoading будет отображаться либо анимация загрузки, либо изображение успеха.

Использование кастомных изображений

Можно также использовать изображения, встроенные в приложение, а не внешние ссылки. Например, можно использовать base64 изображения:

Swal.fire({
  title: 'Изображение в base64',
  text: 'Это изображение в формате base64.',
  imageUrl: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...',
  imageWidth: 150,
  imageHeight: 150
});

Такой подход избавляет от необходимости делать внешние запросы, что может улучшить производительность, особенно если изображения небольшие.

Рекомендуемые размеры изображений

Для обеспечения оптимального отображения изображений в модальных окнах рекомендуется придерживаться следующих рекомендаций по размерам:

  • Минимальный размер: 100x100 пикселей — для хорошей видимости, особенно если изображение представляет собой значок или логотип.
  • Максимальный размер: 300x300 пикселей — для более крупных изображений, чтобы они не занимали слишком много места на экране.

Если изображение слишком большое, оно может привести к сбоям в отображении окна. В таком случае полезно задать параметр imageWidth и imageHeight, чтобы ограничить его размеры.

Совмещение текста и изображений

SweetAlert поддерживает вставку как текста, так и изображений в одном модальном окне. Это позволяет создавать комплексные уведомления с визуальными элементами и дополнительной информацией. Например:

Swal.fire({
  title: 'Успех!',
  text: 'Ваши данные были успешно сохранены.',
  imageUrl: 'https://example.com/success.png',
  imageWidth: 150,
  imageHeight: 150,
  imageAlt: 'Успех',
  showConfirmButton: false,
  timer: 2000
});

Здесь изображение успеха отображается вместе с текстом уведомления. Также используется параметр timer, который позволяет автоматически закрыть окно через 2 секунды, улучшая пользовательский опыт.

Продвинутые варианты использования

Для создания более сложных и настраиваемых окон можно использовать параметр html, который позволяет вставлять HTML-контент в модальное окно. Это открывает возможность для использования изображений вместе с другими элементами:

Swal.fire({
  title: 'Какой-то вопрос',
  html: '<img src="https://example.com/question.png" width="100" height="100" /> Вы уверены, что хотите продолжить?',
  showCancelButton: true,
  confirmButtonText: 'Да',
  cancelButtonText: 'Нет'
});

В этом примере изображение вставляется непосредственно в HTML-контент, а не через стандартный параметр imageUrl. Это даёт ещё больше контроля над тем, как будет отображаться картинка.

Заключение

Вставка изображений в модальные окна SweetAlert — это простой и мощный инструмент для улучшения взаимодействия с пользователем. Возможности настройки размеров, использования динамических изображений и работы с встроенными изображениями позволяют создавать гибкие и привлекательные интерфейсы.