Виджет "Бесплатный промокод"!

Бесплатное Виджет "Бесплатный промокод"! 1.0.0

Нет прав для скачивания
Языки
  1. Русский
Платформа сайта
GameStores
Перед тем как устанавливать, что-либо советую ознакомится с данным текстом.

Данный виджет написан на трёх языках:
JS - Функция копирования текста в буффер обмена.
HTML - Сам виджет и его содержание.
CSS - Дизайн.

Если у вас есть в коде прописанные цвета под такими же "root", советую поменять, чтобы не было кофликтов.
CSS:
:root {
    --primary-color: #c8443a;
    --background-color: #1b1b1b;
    --background-secondary: #121212;
    --background-shadow: #111111;
    --text-color: #ffffff;
    --text-muted: #8a8a8a;
    --border-color: #2a2a2a;
}

Импорт шрифта Montserrat.
В :root заданы переменные с цветами — для удобства и поддержки темы.
.promocode-widget — контейнер с тёмным фоном, центрированный, с отступами.

Внутри виджета:
.promocode-widget h3 — белый, жирный заголовок среднего размера.
.promocode-widget p — серый, обычный текст поменьше.

.copy-button — красная кнопка с белым текстом, скруглениями, тенью и плавными эффектами при наведении:
При наведении кнопка чуть поднимается и тень становится ярче.
В отключённом состоянии — полупрозрачная и без реакции.

.notification — фиксированное всплывающее сообщение в правом верхнем углу, изначально скрытое.
<div class="promocode-widget"> — главный контейнер для виджета, содержит заголовок, описание и кнопку.
<h3> — заголовок виджета с призывом активировать промокод.
<p> — дополнительный текст с мотивацией — получить бонус.
<button> — кнопка с классом copy-button. При клике запускает функцию copyPromocode().
<div class="notification"> — блок для отображения сообщения об успешном копировании.
<div class="notification error" id="error-notification" style="display: none;"> — блок для отображения ошибки, скрыт по умолчанию.
promocode = "RUST2025" — это текст, который будем копировать.

Получаем с помощью JS нужные элементы страницы:
Кнопку копирования .copy-button,
блок для сообщения об успехе #notification,
блок для сообщения об ошибке #error-notification.
Если хотя бы один элемент не найден — функция останавливается и пишет ошибку в консоль.

Когда копирование началось, кнопка блокируется (disabled = true), чтобы пользователь не мог нажать её несколько раз подряд.

Есть внутренняя функция showNotification(element):
Она добавляет классу элемента show, чтобы показать уведомление.
Через 2 секунды класс убирается, и кнопка снова становится активной.
Это чтобы сообщение появлялось на 2 секунды и потом пропадало.

Проверяем, что браузер поддерживает navigator.clipboard и сайт работает по HTTPS.
Если да, то вызываем navigator.clipboard.writeText(promocode).
Если копирование успешно — показываем уведомление об успехе.
Если ошибка — показываем уведомление об ошибке и пишем ошибку в консоль.

Если современный способ недоступен, создаём невидимое поле (textarea).
Вставляем туда промокод, выделяем его и копируем командой document.execCommand('copy').
Если получилось — показываем успех.
Если нет — показываем ошибку и выводим сообщение об ошибке в консоль.
Удаляем временное поле с промокодом.

Примеры:
1753439053873.webp
1753439067154.webp
1753439077656.webp
  • Мне нравится
Реакции: Yoran1x и AKUSIK
Автор
rileyaudley
Скачиваний
24
Просмотры
418
Первый выпуск
Обновление

Рейтинги

0.00 звёзд 0 оценок

Ещё ресурсы от rileyaudley

Похожие ресурсы

Night Rust css + виджет Astryx2K
Полная настройка сайта Night rust
Скачиваний
11
Обновлено
Night Rust Green: CSS + виджет Astryx2K
Night Rust Green: CSS + виджет
Скачиваний
0
Обновлено
Статический виджет без анимации Oxide Россия
Удобный надежный и прост в установке
Скачиваний
3
Обновлено