Tooltip — это компонент для отображения всплывающей подсказки при наведении на элемент, фокусе или клике. В библиотеке Element Plus он используется для улучшения взаимодействия с пользователем, предоставляя дополнительную информацию без перегрузки интерфейса.
<template>
<el-tooltip content="Это подсказка" placement="top">
<button>Наведи на меня</button>
</el-tooltip>
</template>
content — текст, отображаемый во
всплывающем окне.placement — позиция подсказки
относительно целевого элемента. Возможные значения: top,
top-start, top-end, bottom,
bottom-start, bottom-end, left,
left-start, left-end, right,
right-start, right-end.Tooltip поддерживает несколько типов триггеров:
<el-tooltip content="Нажми для подсказки" trigger="click">
<button>Кликни меня</button>
</el-tooltip>
trigger="hover" — по умолчанию,
всплывает при наведении мыши.trigger="click" — подсказка
показывается по клику на элемент.trigger="focus" — показывается при
фокусе на элементе (например, input).trigger="manual" — отображение
управляется программно через v-model:visible.<el-tooltip content="Управляемая подсказка" v-model:visible="visible">
<button @click="visible = !visible">Показать/Скрыть</button>
</el-tooltip>
<script>
export default {
data() {
return {
visible: false
}
}
}
</script>
Можно настроить задержку отображения и скрытия подсказки с помощью
атрибутов open-delay и hide-after.
<el-tooltip content="Подсказка с задержкой" open-delay="500" hide-after="1000">
<button>Наведи на меня</button>
</el-tooltip>
open-delay — задержка перед показом
подсказки в миллисекундах.hide-after — время в миллисекундах,
через которое подсказка автоматически скрывается.В Element Plus можно использовать не только простой текст, но и HTML или Vue-компоненты:
<el-tooltip placement="right">
<template #content>
<div>
<strong>Важно:</strong> Это <em>HTML-содержимое</em>
</div>
</template>
<button>Наведи на меня</button>
</el-tooltip>
#content позволяет полностью контролировать
содержимое подсказки.Tooltip автоматически корректирует свое положение при недостатке места:
effect задает визуальный стиль
подсказки: dark или light.popper-class позволяет
добавить пользовательский CSS-класс для тонкой настройки стиля.<el-tooltip content="С кастомным стилем" popper-class="custom-tooltip" placement="bottom">
<button>Кастомный Tooltip</button>
</el-tooltip>
<style>
.custom-tooltip {
background-color: #409eff;
color: white;
font-weight: bold;
}
</style>
Tooltip часто используется совместно с формами и кнопками для отображения подсказок по валидации:
<el-form :model="form">
<el-form-item label="Email">
<el-tooltip content="Введите корректный email" placement="top">
<el-input v-model="form.email"></el-input>
</el-tooltip>
</el-form-item>
</el-form>
<script>
export default {
data() {
return {
form: {
email: ''
}
}
}
}
</script>
Элемент Tooltip предоставляет методы через
$refs:
<el-tooltip ref="tip" content="Программный контроль">
<button @click="showTooltip">Показать подсказку</button>
</el-tooltip>
<script>
export default {
methods: {
showTooltip() {
this.$refs.tip.doShow();
},
hideTooltip() {
this.$refs.tip.doClose();
}
}
}
</script>
doShow() — открыть подсказку.doClose() — закрыть подсказку.arrow-offset управляет
положением стрелки относительно содержимого.popper-append-to-body
определяет, добавляется ли всплывающее окно в body или
остается внутри контейнера — важно для позиционирования в сложных
разметках.<el-tooltip content="С кастомной стрелкой" arrow-offset="20" popper-append-to-body="false">
<button>Стрелка смещена</button>
</el-tooltip>
Tooltip автоматически адаптируется под мобильные и десктопные устройства:
trigger="click", так как hover не всегда применим.popper-class.@media (max-width: 600px) {
.custom-tooltip {
font-size: 12px;
padding: 4px 8px;
}
}