Intro.js предоставляет гибкую систему настройки внешнего вида подсказок (хинтов) через встроенные CSS-классы и JavaScript-конфигурацию. Ключевыми элементами, влияющими на внешний вид, являются:
tooltipClass..introjs-tooltip и .introjs-tooltiptext
позволяют изменять фон, цвет шрифта, прозрачность и границы.introjs-arrow и псевдоэлементов CSS.Intro.js позволяет модифицировать хинты при инициализации с помощью объекта настроек:
introJs().setOptions({
tooltipClass: 'customTooltip',
highlightClass: 'customHighlight',
showStepNumbers: false,
showBullets: true
}).start();
С помощью CSS можно тонко настроить все визуальные элементы:
.customTooltip {
background-color: #2c3e50;
color: #ecf0f1;
border-radius: 8px;
padding: 15px;
max-width: 300px;
font-size: 14px;
}
.customTooltip .introjs-arrow {
border-top-color: #2c3e50; /* для стрелки, направленной вверх */
}
Особенности:
.introjs-arrow) наследует цвет от фона
подсказки, поэтому изменение цвета фона требует корректировки
стрелки.border-radius, а шрифт и размеры текста регулируются
стандартными CSS-свойствами.max-width) предотвращает слишком
широкие хинты, что улучшает читаемость.Для более сложных сценариев допустимо изменение стилей прямо во время выполнения шага:
introJs().onafterchange(function(targetElement) {
const tooltip = document.querySelector('.introjs-tooltip');
if (tooltip) {
tooltip.style.backgroundColor = targetElement.dataset.bg || '#34495e';
tooltip.style.color = targetElement.dataset.color || '#fff';
}
});
onafterchange позволяет подстраивать
подсказку под конкретный элемент.data-атрибутах
элементов, чтобы легко менять внешний вид без изменения CSS.Intro.js поддерживает анимацию появления подсказок через CSS-переходы и трансформации:
.customTooltip {
opacity: 0;
transform: translateY(-10px);
transition: opacity 0.3s ease, transform 0.3s ease;
}
.introjs-showElement .customTooltip {
opacity: 1;
transform: translateY(0);
}
.introjs-showElement применяется к подсказке при
её отображении.Подсказки могут содержать любые HTML-элементы:
introJs().setOptions({
steps: [
{
element: '#button1',
intro: '<i class="fas fa-info-circle"></i> Нажмите здесь для действий',
tooltipClass: 'iconTooltip'
}
]
});
.iconTooltip {
font-family: 'Roboto', sans-serif;
font-size: 16px;
}
Выделение элемента также влияет на восприятие подсказки. Основные параметры:
.customHighlight {
box-shadow: 0 0 10px 4px rgba(46, 204, 113, 0.7);
border-radius: 5px;
}
box-shadow создаёт визуальное окружение вокруг
элемента.border-radius согласуется с формой элемента, чтобы
выделение выглядело естественно.Подсказки могут содержать стрелки «Назад»/«Вперёд» и кнопки закрытия:
.customTooltip .introjs-button {
background-color: #1abc9c;
color: #fff;
border: none;
padding: 6px 12px;
border-radius: 4px;
margin: 2px;
}
Комплексное использование кастомных классов, JavaScript-настроек, CSS-анимации и data-атрибутов позволяет создавать подсказки любого визуального стиля, которые гармонично интегрируются в интерфейс приложения, делают инструкцию понятной и эстетически привлекательной.