Онлайн заработок, создание и монетизация сайтов, веб-разработка, SEO и SMO продвижение, фриланс, партнерки, полезные сервисы вебмастерам, блоггинг.

Главная » Web разработка » Tooltip подсказки при наведении с помощью CSS и jQuery

Всплывающие Tooltip подсказки при наведении с помощью CSS и jQuery

Tooltip подсказки при наведенииВам уже наверняка встречались всплывающие текстовые подсказки при наведении на разные элементы веб-страницы. Даже в самом HTML есть подобный механизм – если при оформлении ссылки добавить в тег А атрибут title, то при наведении на нее в браузере отобразится этот текст. Сегодня хочу поделиться одним решением, над которым закончил работать буквально только что. В нем есть интересные нюансы, которые вам могут пригодиться + плюс дополнительно упомяну стандартные методики.

Tooltips с помощью CSS

На есть отличный пример как создавать подсказки без каких-либо JavaScript-библиотек. Основное преимущество метода в том, что вам не надо дополнительно подгружать сторонние скрипты на сайт. Если у вас простая визитка или классическая лендинговая целевая страница, то можете обойтись обычным CSS3.

Я немного поменял код по ссылке выше под свою задачу: во-первых, Tooltip выводится слева, во-вторых, прописал для него конкретные размеры блока (ну, и названия классов в нем другие). Вы всегда можете посмотреть исходный вариант.

Конструкция HTML выглядит плюс-минус аналогично:

<a class="add_to_cart_button">
  <div class='new_tooltiptext'>Купить в один клик</div>
</a>

Стили:

.add_to_cart_button {
  position: relative;
}
 
.add_to_cart_button .new_tooltiptext {
  visibility: hidden;
 
  background: rgba(0, 0, 0, 0.9);
  padding: 5px 10px;
  width: 80px;
  height: auto;
  font-size: 0.8rem;
  line-height: 1rem;
  text-align: center;
  border-radius: 3px;
  color: #fff;
  position: absolute;
  z-index: 1;
  top: 0%;
  right: 120%;
  margin-left: 0px;
  opacity: 0;
  transition: opacity 0.3s;
}
 
.add_to_cart_button .new_tooltiptext::after {
  content: "";
  position: absolute;
  top: 40%;
  left: 100%;
  margin-right: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent transparent #1a1a1a;
}
 
.add_to_cart_button:hover .new_tooltiptext {
  visibility: visible;
  opacity: 1;
}

В итоге при наведении увидите картинку:

Tooltip подсказка при наведении

Усовершенствование кода с jQuery

В моей задаче было 2 основных проблемы:

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

Следует заметить, что рабочий сайт использовал систему WordPress, поэтому там уже присутствовала библиотека jQuery. Я встречал варианты подсказок и с ней, но мне нужна была другая функциональность.

Поэтому в файл функций functions.php добавил код:

add_action('wp_footer', 'addtooltip');
function addtooltip() { 
    <script>
        jQuery(function ($) {
           $(".add_to_cart_button").hover(function () {
                $( this ).attr('title', '');
                $( this ).append( $( "<div class='new_tooltiptext'>Купить в один клик</div>" ) );
            }, function () {
                $( this ).find( "div" ).last().remove();
                $( this ).attr('title', 'Купить в один клик');
            });                
        });
    </script>
<?php
} ?>

С помощью add_action выводим в футер свой скрипт. Он позволяет добавить всплывающую подскажу для простого HTML-кода:

<a class="add_to_cart_button" titl="Купить в один клик">…</a>

То есть, как видите, здесь нет никакого внутреннего DIV, которому можно прописать нужные нам CSS-стили. Этот объект добавляется с помощью jQuery непосредственно при наведении!

В JS-коде имеется функция для события hover, состоящая из двух частей: сначала описываете действия при наведении, потом – обратные:

  • В первой части мы в атрибут ‘title’ для ссылки ставим пустое значение + добавляем внутрь новый DIV.
  • Во второй части наоборот – убираем DIV и возвращаем тайтл.

Внимание! Данный вариант будет точно работать в WordPress, но для других платформ, возможно, придется немного переделать синтаксис вызова функции jQuery(function ($). Внедряйте код вдумчиво и пошагово – смотрите результат после каждого этапа.

Другие решения

Очевидно, что для Tooltip подсказок полно всякого добра. Привожу самые интересные из найденных материалов, возможно, вам пригодится:

  • 21 best open-source tooltip plugins — куча библиотек и интересных реализаций с помощью JS, CSS, jQuery. Подойдет тем, кому обычных стилей недостаточно.
  • Для библиотеки jQuery UI имеется плагин Tooltip, который выводит подсказку с помощью одноименной функции tooltip().
  • Simple Text Only Tooltip using JQuery — в функции много всяких доп.проверок.
  • jQuery and CSS3 Simple Tooltip — тут удобно, что каждая строка JS имеет пояснение.
  • Вариант от Hello-site.ru — примечателен тем, что здесь текст подсказки считывается не из дополнительного DIV-блока, а прописывается в data. Для некоторых CMS это может быть очень удобно.

Ну, и полезное видео по теме:

Жаль исходник на Codepen не сохранился, но интересно наблюдать за логикой действий разработчика и его пояснением каждого шага. Начинающим вебмастерам понравится.

А как вы создаете всплывающие подсказки Tooltip на сайтах?

30.06.20

Категории: Web разработка.

Теги: , , , , , , ,

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

Ваш e-mail не публикуется. Обязательные поля помечены *
Если вы комментируете впервые, то текст будет отправлен на модерацию.