В Intro.js форма подсказок определяется с помощью CSS-классов, но библиотека предоставляет встроенные методы для гибкого управления. По умолчанию подсказки имеют прямоугольную форму с закругленными углами, но можно изменять эти параметры для создания визуально уникальных элементов.
Основные свойства для формы:
border-radius – задаёт скругление углов
подсказки.
.introjs-tooltip {
border-radius: 12px;
}box-shadow – добавляет тень, делая подсказку
объёмной.
.introjs-tooltip {
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}border – позволяет подчеркнуть границы подсказки
цветом или толщиной.
.introjs-tooltip {
border: 2px solid #3498db;
}Для более динамичных форм можно использовать классы
модификаторы: introjs-tooltip,
introjs-tooltipReferenceLayer, introjs-arrow.
Эти классы позволяют изменять не только рамки, но и стрелки
подсказки.
Размеры подсказок в Intro.js настраиваются через CSS или через API при инициализации. Ключевые параметры:
width – задаёт ширину подсказки. Можно использовать
фиксированные значения (px) или относительные
(%).
.introjs-tooltip {
width: 300px;
}max-width – ограничивает максимальную ширину, чтобы
текст не растягивал подсказку слишком сильно.
.introjs-tooltip {
max-width: 400px;
}height и max-height – регулируют
высоту, полезно при большом объёме информации.
.introjs-tooltip {
max-height: 200px;
overflow-y: auto;
}Пример использования через API:
introJs().setOptions({
tooltipClass: 'custom-tooltip'
}).start();
В CSS для .custom-tooltip можно указать все размеры и
стили.
Стрелка подсказки указывает на целевой элемент и также может изменять форму и размеры:
width и height стрелки регулируются
через CSS:
.introjs-arrow {
width: 20px;
height: 20px;
}Цвет стрелки наследует цвет подсказки по умолчанию, но можно
изменить через border-color:
.introjs-arrow {
border-color: #3498db;
}Для сложных форм стрелки используют псевдоэлементы
::before и ::after, что позволяет создавать
треугольники, ромбы и другие нестандартные формы.
Intro.js поддерживает динамическое изменение размеров подсказок в зависимости от контента и ширины окна:
Автоматическая подгонка ширины под текст:
.introjs-tooltip {
width: auto;
min-width: 150px;
max-width: 400px;
}Перенос текста на несколько строк:
.introjs-tooltiptext {
white-space: normal;
word-wrap: break-word;
}Скроллинг при превышении высоты:
.introjs-tooltip {
max-height: 250px;
overflow-y: auto;
}Для мобильных устройств и планшетов необходимо учитывать ограниченную площадь экрана:
@media (max-width: 768px) {
.introjs-tooltip {
width: 90%;
font-size: 14px;
}
.introjs-arrow {
width: 15px;
height: 15px;
}
}
Такой подход обеспечивает корректное отображение подсказок на всех устройствах без обрезки текста и наложения на элементы интерфейса.
Intro.js позволяет комбинировать CSS-стили и параметры через API для максимальной гибкости:
introJs().setOptions({
steps: [
{
element: '#button1',
intro: 'Нажмите сюда, чтобы продолжить',
tooltipClass: 'rounded-tooltip'
},
{
element: '#input1',
intro: 'Введите данные сюда',
tooltipClass: 'large-tooltip'
}
]
}).start();
В CSS можно задать уникальные свойства для каждого класса:
.rounded-tooltip {
border-radius: 20px;
width: 250px;
}
.large-tooltip {
border-radius: 5px;
width: 400px;
max-height: 300px;
overflow-y: auto;
}
Это позволяет создавать подсказки с различными формами и размерами на одном интерфейсе, сохраняя визуальное разнообразие и удобство восприятия.
Используя события Intro.js, можно изменять подсказку на лету:
introJs().onafterchange(function(targetElement) {
const tooltip = document.querySelector('.introjs-tooltip');
if(targetElement.id === 'special') {
tooltip.style.width = '500px';
tooltip.style.borderRadius = '0px';
} else {
tooltip.style.width = '300px';
tooltip.style.borderRadius = '10px';
}
}).start();
Такой метод полезен для адаптации подсказок к разному контенту, динамически меняющемуся на странице.