Иногда необходимо оповестить пользователей сайта один раз при первом посещении сайта.
Стиль css:
<style>
.content {
max-width: 800px;
margin: 0 auto;
background: white;
padding: 30px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
/* Стили для затемнения фона */
.overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 999;
}
/* Стили для модального окна */
.modal {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: white;
padding: 30px;
border-radius: 10px;
box-shadow: 0 4px 20px rgba(0,0,0,0.2);
max-width: 500px;
width: 90%;
z-index: 1000;
text-align: center;
}
.modal h2 {
color: #2c3e50;
margin-top: 0;
}
.modal p {
line-height: 1.6;
margin-bottom: 25px;
color: #34495e;
}
.telegram-btn {
display: inline-block;
background-color: #0088cc;
color: white;
padding: 12px 25px;
text-decoration: none;
border-radius: 5px;
font-weight: bold;
transition: background-color 0.3s;
}
.telegram-btn:hover {
background-color: #0077b3;
}
.close-btn {
position: absolute;
top: 15px;
right: 15px;
background: none;
border: none;
font-size: 20px;
cursor: pointer;
color: #7f8c8d;
}
.close-btn:hover {
color: #2c3e50;
}
</style>
html тело самого оповещения:
<!— Затемнение фона —>
<div class=»overlay» id=»overlay»></div>
<!— Модальное окно —>
<div class=»modal» id=»welcomeModal»>
<button class=»close-btn» id=»closeModal»>×</button>
<h2>Дорогие клиенты!</h2>
<p>Теперь связаться с нами можно через Telegram</p>
<p>Будем рады помочь!</p>
<a href=»https://t.me/nikename» class=»telegram-btn» target=»_blank»>Написать в Telegram</a>
</div>
Js скрипт для управления отображением модального окна оповещения:
<script>
document.addEventListener('DOMContentLoaded', function() {
const modal = document.getElementById('welcomeModal');
const overlay = document.getElementById('overlay');
const closeBtn = document.getElementById('closeModal');
// Проверяем, показывалось ли уже модальное окно
if (!localStorage.getItem('modalShown')) {
// Показываем модальное окно с небольшой задержкой для лучшего UX
setTimeout(function() {
modal.style.display = 'block';
overlay.style.display = 'block';
// Сохраняем информацию о том, что модальное окно было показано
localStorage.setItem('modalShown', 'true');
}, 1000);
}
// Закрытие модального окна при клике на крестик
closeBtn.addEventListener('click', function() {
modal.style.display = 'none';
overlay.style.display = 'none';
});
// Закрытие модального окна при клике на затемненный фон
overlay.addEventListener('click', function() {
modal.style.display = 'none';
overlay.style.display = 'none';
});
// Закрытие модального окна при нажатии клавиши Escape
document.addEventListener('keydown', function(event) {
if (event.key === 'Escape') {
modal.style.display = 'none';
overlay.style.display = 'none';
}
});
});
</script>
Как это работает:
- При первом посещении сайта появляется модальное окно с вашим текстом и кнопкой для перехода в Telegram
- Информация о показе окна сохраняется в локальном хранилище браузера
- При последующих посещениях сайта окно больше не показывается
- Окно можно закрыть:
- Нажав на крестик в правом верхнем углу
- Кликнув на затемненную область вокруг окна
- Нажав клавишу Escape
