Как создать всплывающее окно в WordPress без плагина: пошаговое руководство

Всплывающие окна (pop-up windows) – эффективный инструмент для привлечения внимания посетителей сайта к важной информации, сбора email-адресов или продвижения специальных предложений. Использование плагинов – самый простой путь, но создание всплывающего окна без плагина дает вам полный контроль над кодом, что позволяет оптимизировать его и избежать лишней нагрузки на сайт.

Преимущества создания всплывающего окна без плагина

  • Оптимизация производительности: Отсутствие лишнего кода плагина снижает нагрузку на сайт и улучшает скорость загрузки.
  • Полный контроль: Вы полностью контролируете внешний вид и функциональность всплывающего окна, что позволяет реализовать уникальный дизайн и поведение.
  • Избежание конфликтов: Устраняется вероятность конфликтов с другими плагинами.

Когда стоит использовать плагин, а когда – нет

Используйте плагин, если:

  • Вам нужно быстрое и простое решение.
  • Не требуются сложные настройки и уникальный дизайн.
  • Производительность сайта не является критичным фактором.

Создавайте всплывающее окно без плагина, если:

  • Требуется максимальная оптимизация производительности.
  • Нужен уникальный дизайн и функциональность.
  • Вы обладаете достаточными знаниями HTML, CSS и JavaScript.

Подготовка: Необходимые навыки и инструменты

Для создания всплывающего окна без плагина понадобятся базовые знания веб-разработки и доступ к файлам темы WordPress.

Базовые знания HTML, CSS и JavaScript

Необходимо понимать структуру HTML-документа, принципы стилизации элементов с помощью CSS и основы работы JavaScript для управления поведением всплывающего окна.

Доступ к файлам темы WordPress (FTP или файловый менеджер)

Для редактирования файлов темы потребуется доступ к серверу по FTP или через файловый менеджер в панели управления хостингом.

Редактор кода

Используйте текстовый редактор для написания и редактирования кода (например, Visual Studio Code, Sublime Text, Atom).

Создание всплывающего окна: HTML, CSS и JavaScript

Создание всплывающего окна включает в себя HTML-структуру, CSS-стилизацию и JavaScript-логику.

HTML: Структура всплывающего окна (контейнер, контент, кнопка закрытия)

Создайте HTML-структуру всплывающего окна:

<div id="myModal" class="modal">
  <div class="modal-content">
    <span class="close">&times;</span>
    <p>Это содержимое всплывающего окна!</p>
  </div>
</div>
  • #myModal — основной контейнер.
  • .modal-content — контейнер для содержимого.
  • .close — кнопка закрытия.

CSS: Стилизация всплывающего окна (позиционирование, внешний вид, анимация)

Добавьте CSS-стили для позиционирования, внешнего вида и анимации:

.modal {
  display: none; /* Скрываем по умолчанию */
  position: fixed; /* Фиксированное позиционирование */
  z-index: 1; /* Поверх всего */
  left: 0;
  top: 0;
  width: 100%; /* Полная ширина */
  height: 100%; /* Полная высота */
  overflow: auto; /* Прокрутка при необходимости */
  background-color: rgba(0,0,0,0.4); /* Полупрозрачный фон */
}

.modal-content {
  background-color: #fefefe;
  margin: 15% auto; /* Центрирование */
  padding: 20px;
  border: 1px solid #888;
  width: 80%;
}

.close {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.close:hover,
.close:focus {
  color: black;
  text-decoration: none;
  cursor: pointer;
}
Реклама

JavaScript: Логика открытия и закрытия всплывающего окна (обработчики событий)

Добавьте JavaScript-код для управления видимостью всплывающего окна:

// Получаем элементы
const modal: HTMLElement | null = document.getElementById("myModal");
const btn: HTMLElement | null = document.getElementById("myBtn"); //Предполагается, что у вас есть кнопка с id="myBtn"
const span: HTMLElement | null = document.getElementsByClassName("close")[0] as HTMLElement; //Используем type assertion

// Открытие окна по клику на кнопке
if (btn) {
    btn.onclick = function() {
        if (modal) {
            modal.style.display = "block";
        }
    }
}

// Закрытие окна по клику на крестик
if (span) {
    span.onclick = function() {
        if (modal) {
            modal.style.display = "none";
        }
    }
}

// Закрытие окна по клику вне его
window.onclick = function(event: MouseEvent) { // Добавляем type annotation для event
    if (modal && event.target == modal) {
        modal.style.display = "none";
    }
}

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

Используйте медиа-запросы в CSS для адаптации внешнего вида всплывающего окна под экраны мобильных устройств:

@media screen and (max-width: 600px) {
  .modal-content {
    width: 90%;
    margin: 20% auto;
  }
}

Интеграция всплывающего окна в WordPress

Интегрируйте созданный код в вашу тему WordPress.

Добавление HTML-кода в файл темы (header.php или footer.php)

Добавьте HTML-код всплывающего окна в файл header.php или footer.php вашей темы. В footer.php – предпочтительнее, чтобы не блокировать загрузку страницы.

Подключение CSS-стилей (через файл style.css или встроенно)

Добавьте CSS-стили в файл style.css вашей темы или непосредственно в <head> через функцию wp_head в functions.php.

Подключение JavaScript-кода (через файл functions.php или встроенно)

Добавьте JavaScript-код в отдельный файл, например popup.js, и подключите его через файл functions.php вашей темы:

<?php
function my_custom_scripts() {
    wp_enqueue_script( 'popup-script', get_template_directory_uri() . '/js/popup.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_custom_scripts' );
?>

Или вставьте код непосредственно в footer.php перед закрывающим тегом </body>.

Тестирование и отладка

Проверьте работу всплывающего окна и исправьте возможные ошибки.

Проверка работы всплывающего окна в разных браузерах

Проверьте, как всплывающее окно отображается и работает в разных браузерах (Chrome, Firefox, Safari, Edge) и на разных устройствах.

Исправление ошибок и адаптация под дизайн сайта

Исправьте любые ошибки в коде и адаптируйте внешний вид всплывающего окна под дизайн вашего сайта.

Оптимизация производительности (загрузка скриптов только при необходимости)

Убедитесь, что скрипты всплывающего окна загружаются только тогда, когда это необходимо, чтобы не замедлять загрузку других страниц сайта. Использование wp_enqueue_scripts с указанием $in_footer = true – хороший способ это реализовать.


Добавить комментарий