Главная / Уроки / Сайтостроение / Мульти кнопка для сайта

Мульти кнопка для сайта

Мульти кнопка для сайта
Содержание

В этом уроке мы разберем, как сделать мульти кнопку для сайта с помощью HTML, JS и CSS. При нажатии на кнопку будут появляться всплывающие кнопки с ссылками на чаты в WhatsApp и Telegram, а также кнопка позвонить по телефону. Поняв принцип вы сможете добавлять любое количество всплывающих кнопок с нужными вам контактами.

Также мы рассмотрим готовый плагин с кнопкой для WordPress.

HTML код кнопки

Для начала пропишем код самой кнопки. Этот код необходимо размещать внутри тела страницы, между тегами <body> и </body>.

<div class="fixed-button">
    <button id="main-button">
        <!-- Иконка для главной кнопки -->
        <img src="/путь к файлу/main-icon.svg" alt="Menu">
    </button>
    <div class="popup">
        <!-- Ссылки и иконки для всплывающих кнопок -->
        <a href="tel:1234567890" class="popup-button">
            <img src="/путь к файлу/tel.svg" alt="Телефон" title="Позвонить">
        </a>
        <a href="https://wa.me/1234567890" class="popup-button">
            <img src="/путь к файлу/whatsapp.svg" alt="WhatsApp" title="Написать в WhatsApp">
        </a>
        <a href="https://t.me/username" class="popup-button">
            <img src="/путь к файлу/telegram.svg" alt="Telegram" title="Написать в Telegram">
        </a>
    </div>
</div>

В коде мы использовали svg иконки, которые нужно предварительно загрузить на хостинг, в папку с вашим сайтом. Затем в коде прописать путь к месту расположения файлов.

Итак, мы загрузили иконки, прописали код главной кнопки и трёх всплывающих кнопок с нужными нам контактами.

CSS стиль кнопки

Теперь нам нужно всё это дело красиво оформить, например следующим образом.

.fixed-button {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 999999;
}

#main-button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    border: none;
    background-color: #007BFF;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

#main-button img {
    width: 30px;
    height: 30px;
}

.popup {
    display: none;
    position: absolute;
    bottom: 70px;
    right: 0;
    flex-direction: column;
    align-items: center;
}

.popup-button {
    width: 50px;
    height: 50px;
    margin-bottom: 10px;
    border-radius: 50%;
    background-color: #FFF;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

.popup-button img {
    width: 25px;
    height: 25px;
}

.popup-button:hover {
    transform: scale(1.1);
}

Также, с помощью CSS, кнопке можно добавить красивую анимацию и всякие всплывающие подсказки.

Скрипт для кнопки

Теперь пропишем скрипт, чтобы у кнопки появилась функция отображения скрытых всплывающих кнопок.

document.addEventListener('DOMContentLoaded', function () {
    const mainButton = document.getElementById('main-button');
    const popup = document.querySelector('.popup');

    mainButton.addEventListener('click', function () {
        popup.style.display = popup.style.display === 'flex' ? 'none' : 'flex';
    });

    document.addEventListener('click', function (event) {
        if (!mainButton.contains(event.target) && !popup.contains(event.target)) {
            popup.style.display = 'none';
        }
    });
});

Если вы планируете добавить этот скрипт напрямую в тело или подвал страницы, то необходимо обернуть его в теги <script>...</script>.

Если же вы хотите подключить его как отдельный файл, то создайте файл script.js и поместите туда код. Далее этот файл нужно будет подключить к вашему сайту. В WordPress это можно сделать через functions.php, либо опять же прописать на странице.

<script src="...путь к файлу/script.js"></script>

Установка кнопки на HTML сайт

Примерно так будет выглядеть код, если подключить весь код кнопки напрямую, без использования дополнительных файлов.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Мульти кнопка</title>
</head>
<body>

<div class="fixed-button">
    <button id="main-button">
        <!-- Иконка для главной кнопки -->
        <img src="/путь к файлу/main-icon.svg" alt="Menu">
    </button>
    <div class="popup">
        <!-- Ссылки и иконки для всплывающих кнопок -->
        <a href="tel:1234567890" class="popup-button">
            <img src="/путь к файлу/tel.svg" alt="Телефон" title="Позвонить">
        </a>
        <a href="https://wa.me/1234567890" class="popup-button">
            <img src="/путь к файлу/whatsapp.svg" alt="WhatsApp" title="Написать в WhatsApp">
        </a>
        <a href="https://t.me/username" class="popup-button">
            <img src="/путь к файлу/telegram.svg" alt="Telegram" title="Написать в Telegram">
        </a>
    </div>
</div>

<style>

.fixed-button {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 999999;
}

#main-button {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    border: none;
    background-color: #007BFF;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

#main-button img {
    width: 30px;
    height: 30px;
}

.popup {
    display: none;
    position: absolute;
    bottom: 70px;
    right: 0;
    flex-direction: column;
    align-items: center;
}

.popup-button {
    width: 50px;
    height: 50px;
    margin-bottom: 10px;
    border-radius: 50%;
    background-color: #FFF;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

.popup-button img {
    width: 25px;
    height: 25px;
}

.popup-button:hover {
    transform: scale(1.1);
}

</style>
<script>

document.addEventListener('DOMContentLoaded', function () {
    const mainButton = document.getElementById('main-button');
    const popup = document.querySelector('.popup');

    mainButton.addEventListener('click', function () {
        popup.style.display = popup.style.display === 'flex' ? 'none' : 'flex';
    });

    document.addEventListener('click', function (event) {
        if (!mainButton.contains(event.target) && !popup.contains(event.target)) {
            popup.style.display = 'none';
        }
    });
});

</script>
</body>
</html>

Если подключать отдельно файл стилей и скрипт, то код будет следующим.

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Мульти кнопка</title>
    <link rel="stylesheet" href="/путь к файлу/styles.css">
</head>
<body>

<div class="fixed-button">
    <button id="main-button">
        <!-- Иконка для главной кнопки -->
        <img src="/путь к файлу/main-icon.svg" alt="Menu">
    </button>
    <div class="popup">
        <!-- Ссылки и иконки для всплывающих кнопок -->
        <a href="tel:1234567890" class="popup-button">
            <img src="/путь к файлу/tel.svg" alt="Телефон" title="Позвонить">
        </a>
        <a href="https://wa.me/1234567890" class="popup-button">
            <img src="/путь к файлу/whatsapp.svg" alt="WhatsApp" title="Написать в WhatsApp">
        </a>
        <a href="https://t.me/username" class="popup-button">
            <img src="/путь к файлу/telegram.svg" alt="Telegram" title="Написать в Telegram">
        </a>
    </div>
</div>

<script src="/путь к файлу/script.js"></script>
</body>
</html>

Установка кнопки на WordPress

Подключение на WordPress сайте происходит аналогично. Расписывать куда вставлять HTML и CSS код не буду, об этом есть много информации, в том числе и на нашем сайте.

Единственное, если вы будете подключать файл со скриптом через functions.php, то код будет следующим.

add_action( 'wp_enqueue_scripts', 'my_script_1' );
function my_script_1(){
	wp_enqueue_script( 'popupscript', get_template_directory_uri() . '/путь к файлу/script.js');
}

Готовый WordPress плагин мульти кнопки

плагин мульти кнопки для WordPress

Тем, кому сложно разбираться с кодом предлагаю свой готовый плагин для WordPress, где кнопку можно легко настроить под ваш стиль сайта. У кнопки есть красивая анимация, всплывающие подсказки и возможность настройки внешнего вида. Плагин платный, но не дорогой.

Ссылка на плагин Multibutton Fixed

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *