Тултипы (tooltips). Что это такое и как их проектировать / Хабр
Тултип, от английского tooltip. Это такая короткая всплывающая подсказка, появляющаяся при наведении курсора на элемент. Или при фокусировании на элементе с помощью клавиатуры. Или при длительном разглядывании элемента, если вы в шлеме виртуальной реальности с трекингом глаз.
Привет, меня зовут Егор Камелев. Я занимаюсь проектированием интерфейсов с 2006 года. Сегодня хочу поделиться чек-листом вопросов, связанных с проектированием тултипов.
Тултипы чаще всего используются для следующих разъсянений:
Что обозначает та или иная иконка в интерфейсе?
Например, в WYSIWYG-панелях текстовых редакторов
Что же там, в обрезанном тексте?
Если название ролика на YouTube не умещается в две строки, то оно отображается в тултипе
Что это за непонятное число?
Пример из интерфейса Яндекс.Метрики
В приведённых примерах вряд ли удалось бы отказаться от тултипов без вреда для интерфейса. И это первый вопрос, которым я задаюсь во время проектирования: «Можно ли здесь обойтись без тултипа и не навредить пользователям?» Если можно, то лучше всё-таки не прятать важную информацию под тултип, а размещать её в виде текста рядом с нужным элементом.
Следующий вопрос звучит так: «Здесь точно нужен тултип, а не что-нибудь другое?» Возможно, подойдёт один из похожих элементов: поп-овер или модальное окно.
Поп-овер появляется при клике на элемент и представляет собой более сложную подсказку, в которой может быть несколько абзацев текста, ссылки и кнопки. Чаще всего используется для разъяснения неочевидных и не самых важных вещей и прячется под отдельную иконку. А ещё поп-овер можно использовать в интерфейсах, где навестись на элемент невозможно из-за отсутствия клавиатуры и мыши. Например, в мобильных приложениях или терминалах.
На Яндекс.маркете такие подсказки рассказывают о свойствах товаров тем, кто не очень хорошо в них разбирается
Модальные окна перекрывают собой весь остальной интерфейс и не позволяют взаимодействовать с ним до тех пор, пока не будут закрыты. Хорошо подходят в сценариях, когда для работы с элементом необходимо заполучить 100% внимания пользователя.
Модальное окно с перечнем тарифов в конструкторе посадочных страниц lp151.com
Во время работы я стараюсь быть последовательным в применении тултипов. Не стоит использовать тултип для одной непонятной иконки и при этом забыть его для другой, соседней (хотя это всё же лучше, чем вообще оставлять пользователей без подсказок).
Если проект изначально ограничен фреймворком, например Бутстрапом, то мне повезло. Можно почитать документацию и использовать эти знания, их будет достаточно. Если же тултипы придётся проектировать и описывать с нуля, то нужно задаться ещё несколькими вопросами.
Например, важно ли пользователям видеть, что находится за тултипом, в момент его отображения? Если важно, то придётся размещать тултип рядом с элементом, а не поверх него.
Есть ли рядом другие элементы с тултипами? Расположены ли они достаточно близко, что при появлении тултипа можно запутаться, к какому из них относится тултип? Если да, то придётся использовать стрелочки, указывающие на элемент. Либо рассчитывать на то, что элемент, на который пользователь навёлся, выделен среди остальных.
Если не используется фреймворк (а иногда даже когда фреймворк используется), то для передачи задачи в разработку приходится описывать всю необходимую логику, отвечающую на вопросы:
Через сколько миллисекунд после наведения тултип появляется?
Через сколько исчезает после того, как с него снят фокус?
Если два элемента стоят рядом и пользователь сместил фокус с одного на другой, как должны вести себя тултипы (например, тултипы меняются мгновенно, игнорируя правило задержки)?
Нужна ли анимация плавного появления и исчезания? Если нужна, то какая и сколько она должна занимать по времени?
Где должен появиться тултип относительно курсора мыши или элемента, на который навёлся пользователь?
Где должен появиться тултип, если элемент, на который навёлся пользователь, находится слишком близко к краю экрана? Если использовать решение со стрелочками, торчащими из тултипа, то задача по проектированию и описанию логики размещения элементов серьёзно усложняется;
Какая максимальная длина текста может быть в тултипе?
Можно ли отображать тултип с пустым контентом (в Бутстрапе по умолчанию нельзя)?
Можно ли показывать тултипы для скрытых элементов (в Бутстрапе по умолчанию нельзя)?
Не забыл ли я указать в тултипе информацию о сочетании клавиш, с помощью которых можно выполнить действие, связанное с элементом, на который навёлся пользователь?
На этом UX-составляющая вопросов проектировщика заканчивается и можно приступать к UI. Здесь будут свои вопросы.
Каким цветом отделить тултип от остального интерфейса (в Бутстрапе по умолчанию это белый текст на чёрном фоне)?
Нужны ли дополнительные инструменты для такого отделения, помимо цвета подложки? Прозрачность тултипа, обводка контейнера, отбрасывание тени?
Не нагородил ли я нового стиля там, где можно было использовать существующий?
Какой будет максимальная ширина контента до переноса строки и почему?
Например, для дизайн-системы моего проекта, генератора посадочных страниц lp151.com, необходимо использовать дополнительные инструменты, т.к. не существует ограничений по цветам, поверх которых может оказаться тултип в том или ином участке редактора лендингов.
Какой бы цвет подолжки тултипа ни выбрал дизайнер lp151.com, всё равно возникнет ситуация, когда подсказка сольётся с цветом фона. Поэтому разумно использовать дополнительные способы отделения элементов друг от друга
Глядя на работы коллег по дизайну, часто замечаю стремление уменьшить размер и начертание шрифта для тултипов. В корне с этим не согласен. Не стоит усложнять читаемость тултипов. Борьбы за пространство в этом сценарии нет. А визуально тултипы уже и так жёстко отделены от остального интерфейса.
В качестве антипримера кусочек интерфейса из моего проекта. Текст подсказки не должен быть таким маленьким, не должен отображаться для элемента, контент которого не обрезан интерфейсом, а также не должен содержать дополнительную, особенно такую важную, как дата и время публикации, информацию. Придётся исправлять!
Иногда можно встретить тултипы, которые занимают всю ширину экрана и уходят далеко за его границы, не позволяя прочесть содержимого. От этого стоит избавляться ещё на этапе дизайна.
Так выглядит один из примеров тултипа в дизайн-системе lp151.com
Наконец, проектировщик может помочь верстальщику, написав в сопроводительной документации пару строк о требованиях к доступности интерфейса (accessibility). Если среди целевой аудитории проекта есть слабовидящие люди, использующие скрин-ридеры, то тултипы должны быть свёрстаны с соблюдением двух принципов:
Скрин-ридерам доступен контент тултипов и они в состоянии его воспроизвести;
Контент этот находится в нужных частях интерфейса. Например, подсказку о том, какое поле сейчас заполняет пользователь, лучше размещать до поля, а не после него (возможно, в комментариях вы придумаете гораздо более удачный пример, чем этот).
На моей практике ещё не встречалось проекта, где тултипам уделялось бы много внимания в начале разработки. И это вполне разумно: не тратить лишних ресурсов на столь незначительные элементы. Поэтому у меня качественные знания о тултипах появились лишь после того, как я стал шлифовать собственный проект через три года после его запуска. И оказалось, что знания эти не такие уж и сложные и что проектирование тултипов и грамотная их реализация с первой версии продукта не такая уж и ресурсоёмкая. Этой заметкой хотелось бы помочь тем, кто забивает на тултипы так же, как это делал я, пока жизнь не заставила научиться работать с ними.
Тултипы (tooltips). Что это такое и как их проектировать — Дизайн на vc.ru
Тултип, от английского tooltip. Это такая короткая всплывающая подсказка, появляющаяся при наведении курсора на элемент. Или при фокусировании на элементе с помощью клавиатуры. Или при длительном разглядывании элемента, если вы в шлеме виртуальной реальности с трекингом глаз.
2148
просмотров
Привет, меня зовут Егор Камелев. Я занимаюсь проектированием интерфейсов с 2006 года. Сегодня хочу поделиться чек-листом вопросов, связанных с проектированием тултипов.
Тултипы чаще всего используются для следующих разъсянений:
Что обозначает та или иная иконка в интерфейсе?
Например, в WYSIWYG-панелях текстовых редакторов
Что же там, в обрезанном тексте?
Если название ролика на YouTube не умещается в две строки, то оно отображается в тултипе
Что это за непонятное число?
Пример из интерфейса Яндекс.Метрики
В приведённых примерах вряд ли удалось бы отказаться от тултипов без вреда для интерфейса. И это первый вопрос, которым я задаюсь во время проектирования: «Можно ли здесь обойтись без тултипа и не навредить пользователям?» Если можно, то лучше всё-таки не прятать важную информацию под тултип, а размещать её в виде текста рядом с нужным элементом.
Следующий вопрос звучит так: «Здесь точно нужен тултип, а не что-нибудь другое?» Возможно, подойдёт один из похожих элементов: поп-овер или модальное окно.
Поп-овер появляется при клике на элемент и представляет собой более сложную подсказку, в которой может быть несколько абзацев текста, ссылки и кнопки. Чаще всего используется для разъяснения неочевидных и не самых важных вещей и прячется под отдельную иконку. А ещё поп-овер можно использовать в интерфейсах, где навестись на элемент невозможно из-за отсутствия клавиатуры и мыши. Например, в мобильных приложениях или терминалах.
На Яндекс.маркете такие подсказки рассказывают о свойствах товаров тем, кто не очень хорошо в них разбирается
Модальные окна перекрывают собой весь остальной интерфейс и не позволяют взаимодействовать с ним до тех пор, пока не будут закрыты. Хорошо подходят в сценариях, когда для работы с элементом необходимо заполучить 100% внимания пользователя.
Модальное окно с перечнем тарифов в конструкторе посадочных страниц lp151.com
Во время работы я стараюсь быть последовательным в применении тултипов. Не стоит использовать тултип для одной непонятной иконки и при этом забыть его для другой, соседней (хотя это всё же лучше, чем вообще оставлять пользователей без подсказок).
Если проект изначально ограничен фреймворком, например Бутстрапом, то мне повезло. Можно почитать документацию и использовать эти знания, их будет достаточно. Если же тултипы придётся проектировать и описывать с нуля, то нужно задаться ещё несколькими вопросами.
Например, важно ли пользователям видеть, что находится за тултипом, в момент его отображения? Если важно, то придётся размещать тултип рядом с элементом, а не поверх него.
Есть ли рядом другие элементы с тултипами? Расположены ли они достаточно близко, что при появлении тултипа можно запутаться, к какому из них относится тултип? Если да, то придётся использовать стрелочки, указывающие на элемент.
Либо рассчитывать на то, что элемент, на который пользователь навёлся, выделен среди остальных.
Если не используется фреймворк (а иногда даже когда фреймворк используется), то для передачи задачи в разработку приходится описывать всю необходимую логику, отвечающую на вопросы:
Через сколько миллисекунд после наведения тултип появляется?
Через сколько исчезает после того, как с него снят фокус?
Если два элемента стоят рядом и пользователь сместил фокус с одного на другой, как должны вести себя тултипы (например, тултипы меняются мгновенно, игнорируя правило задержки)?
Нужна ли анимация плавного появления и исчезания? Если нужна, то какая и сколько она должна занимать по времени?
Где должен появиться тултип относительно курсора мыши или элемента, на который навёлся пользователь?
Где должен появиться тултип, если элемент, на который навёлся пользователь, находится слишком близко к краю экрана? Если использовать решение со стрелочками, торчащими из тултипа, то задача по проектированию и описанию логики размещения элементов серьёзно усложняется;
Какая максимальная длина текста может быть в тултипе?
Можно ли отображать тултип с пустым контентом (в Бутстрапе по умолчанию нельзя)?
Можно ли показывать тултипы для скрытых элементов (в Бутстрапе по умолчанию нельзя)?
Не забыл ли я указать в тултипе информацию о сочетании клавиш, с помощью которых можно выполнить действие, связанное с элементом, на который навёлся пользователь?
На этом UX-составляющая вопросов проектировщика заканчивается и можно приступать к UI. Здесь будут свои вопросы.
Каким цветом отделить тултип от остального интерфейса (в Бутстрапе по умолчанию это белый текст на чёрном фоне)?
Нужны ли дополнительные инструменты для такого отделения, помимо цвета подложки? Прозрачность тултипа, обводка контейнера, отбрасывание тени?
Не нагородил ли я нового стиля там, где можно было использовать существующий?
Какой будет максимальная ширина контента до переноса строки и почему?
Например, для дизайн-системы моего проекта, генератора посадочных страниц lp151.com, необходимо использовать дополнительные инструменты, т.к. не существует ограничений по цветам, поверх которых может оказаться тултип в том или ином участке редактора лендингов.
Какой бы цвет подолжки тултипа ни выбрал дизайнер lp151.com, всё равно возникнет ситуация, когда подсказка сольётся с цветом фона. Поэтому разумно использовать дополнительные способы отделения элементов друг от друга
Глядя на работы коллег по дизайну, часто замечаю стремление уменьшить размер и начертание шрифта для тултипов. В корне с этим не согласен. Не стоит усложнять читаемость тултипов. Борьбы за пространство в этом сценарии нет. А визуально тултипы уже и так жёстко отделены от остального интерфейса.
В качестве антипримера кусочек интерфейса из моего проекта. Текст подсказки не должен быть таким маленьким, не должен отображаться для элемента, контент которого не обрезан интерфейсом, а также не должен содержать дополнительную, особенно такую важную, как дата и время публикации, информацию. Придётся исправлять!
Иногда можно встретить тултипы, которые занимают всю ширину экрана и уходят далеко за его границы, не позволяя прочесть содержимого. От этого стоит избавляться ещё на этапе дизайна.
Так выглядит один из примеров тултипа в дизайн-системе lp151.
com
Наконец, проектировщик может помочь верстальщику, написав в сопроводительной документации пару строк о требованиях к доступности интерфейса (accessibility). Если среди целевой аудитории проекта есть слабовидящие люди, использующие скрин-ридеры, то тултипы должны быть свёрстаны с соблюдением двух принципов:
Скрин-ридерам доступен контент тултипов и они в состоянии его воспроизвести;
Контент этот находится в нужных частях интерфейса. Например, подсказку о том, какое поле сейчас заполняет пользователь, лучше размещать до поля, а не после него (возможно, в комментариях вы придумаете гораздо более удачный пример, чем этот).
На моей практике ещё не встречалось проекта, где тултипам уделялось бы много внимания в начале разработки. И это вполне разумно: не тратить лишних ресурсов на столь незначительные элементы. Поэтому у меня качественные знания о тултипах появились лишь после того, как я стал шлифовать собственный проект через три года после его запуска. И оказалось, что знания эти не такие уж и сложные и что проектирование тултипов и грамотная их реализация с первой версии продукта не такая уж и ресурсоёмкая. Этой заметкой хотелось бы помочь тем, кто забивает на тултипы так же, как это делал я, пока обстоятельства не научили работать с ними.
Tooltips · Bootstrap v5.0
Обзор
Что нужно знать при использовании плагина всплывающих подсказок:
Подсказки полагаются на стороннюю библиотеку Popper для позиционирования. Вы должны включить popper.min.js перед bootstrap.js или использовать bootstrap.bundle.min.js / bootstrap.bundle.js , который содержит Popper, чтобы всплывающие подсказки работали!
Всплывающие подсказки добавляются по соображениям производительности, поэтому вы должны инициализировать их самостоятельно .
Никогда не отображаются всплывающие подсказки с заголовками нулевой длины.
Укажите container: 'body' , чтобы избежать проблем с рендерингом в более сложных компонентах (таких как наши группы ввода, группы кнопок и т. д.).
Не работают всплывающие подсказки для скрытых элементов.
Подсказки для элементов .disabled или disabled должны активироваться на элементе-оболочке.
При запуске из гиперссылок, охватывающих несколько строк, всплывающие подсказки будут располагаться по центру. Используйте белое пространство: nowrap; на , чтобы избежать такого поведения.
Всплывающие подсказки должны быть скрыты до того, как соответствующие им элементы будут удалены из модели DOM.
Подсказки могут быть активированы благодаря элементу внутри теневого DOM.
По умолчанию этот компонент использует встроенное средство очистки содержимого, которое удаляет любые элементы HTML, которые явно не разрешены. Дополнительные сведения см. в разделе «дезинфицирующее средство» в нашей документации по JavaScript.
Все понял? Отлично, давайте посмотрим, как они работают, на нескольких примерах.
Пример: Включить всплывающие подсказки везде
Один из способов инициализировать все всплывающие подсказки на странице — выбрать их по атрибуту data-bs-toggle :
var tooltipTriggerList = [].slice.call(document.querySelectorAll( '[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map (функция (tooltipTriggerEl) {
вернуть новый bootstrap.Tooltip(tooltipTriggerEl)
})
Примеры
Наведите указатель мыши на ссылки ниже, чтобы увидеть всплывающие подсказки:
Текст-заполнитель для демонстрации некоторых встроенных ссылок с всплывающими подсказками. Теперь это просто наполнитель, а не убийца. Контент размещен здесь только для того, чтобы имитировать наличие реального текста. И все это только для того, чтобы дать вам представление о том, как будут выглядеть всплывающие подсказки при использовании в реальных ситуациях. Итак, надеюсь, теперь вы увидели, как эти всплывающие подсказки для ссылок могут работать на практике, как только вы используете их на своем собственном сайте или в проекте.
Наведите указатель мыши на кнопки ниже, чтобы увидеть четыре направления всплывающих подсказок: сверху, справа, снизу и слева. Направления отражаются при использовании Bootstrap в RTL.
Подключаемый модуль всплывающих подсказок генерирует содержимое и разметку по запросу и по умолчанию размещает всплывающие подсказки после их триггерного элемента.
Запустить всплывающую подсказку через JavaScript:
var exampleEl = document.getElementById('example')
var tooltip = новый bootstrap.Tooltip(exampleEl, options)
Переполнение
авто и прокрутка
Позиция всплывающей подсказки пытается автоматически измениться, когда родительский контейнер имеет переполнение : авто или переполнение: прокрутка , как наш .table 9, но по-прежнему сохраняет исходный .table 9 900 позиционирование размещения. Чтобы решить эту проблему, установите параметр border (для модификатора flip, использующий параметр popperConfig ) на любой HTMLElement, чтобы переопределить значение по умолчанию, 'clippingParents' , например document. body :
var exampleEl = document.getElementById('example')
var tooltip = новый bootstrap.Tooltip (exampleEl, {
граница: document.body // или document.querySelector('#boundary')
})
Разметка
Необходимая разметка для всплывающей подсказки — это только атрибут данных и заголовок HTML-элемента, для которого вы хотите иметь всплывающую подсказку. Генерируемая разметка всплывающей подсказки довольно проста, хотя для нее требуется позиция (по умолчанию установлено значение 9).0008 сверху плагином).
Обеспечение работы всплывающих подсказок для пользователей клавиатуры и вспомогательных технологий
Вы должны добавлять всплывающие подсказки только к элементам HTML, которые традиционно являются интерактивными и активными с помощью клавиатуры (например, ссылки или элементы управления формы). Хотя произвольные элементы HTML (такие как s) можно сделать фокусируемыми, добавив атрибут tabindex="0" , это добавит потенциально раздражающие и запутанные позиции табуляции для неинтерактивных элементов для пользователей клавиатуры, и большинство вспомогательные технологии в настоящее время не объявляют всплывающую подсказку в этой ситуации. Кроме того, не полагайтесь только на наведите курсор на в качестве триггера для вашей всплывающей подсказки, так как это сделает ваши всплывающие подсказки невозможными для пользователей клавиатуры.
<дел>дел>
<дел>
Какой-то текст всплывающей подсказки!
Отключенные элементы
Элементы с отключенным не являются интерактивными, то есть пользователи не могут сфокусироваться, навести или щелкнуть их, чтобы вызвать всплывающую подсказку (или всплывающее окно). В качестве обходного пути вы захотите вызвать всплывающую подсказку из оболочки
или , в идеале с фокусом на клавиатуре, используя tabindex="0" .
Кнопка отключена
Опции
Опции можно передавать через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя опции к data-bs-, например data-bs-animation="" . Не забудьте изменить тип регистра имени параметра с camelCase на kebab-case при передаче параметров через атрибуты данных. Например, вместо data-bs-customClass="beautifier" используйте data-bs-custom-class="beautifier" .
Обратите внимание, что по соображениям безопасности дезинфицирует 9Параметры 0009 , sanitizeFn и allowList не могут быть предоставлены с использованием атрибутов данных.
Имя
Тип
По умолчанию
Описание
анимация
логическое значение
правда
Применить переход затухания CSS к всплывающей подсказке
контейнер
строка | элемент | ложь
ложный
Добавляет всплывающую подсказку к определенному элементу. Пример: контейнер : 'тело' . Этот параметр особенно удобен тем, что позволяет расположить всплывающую подсказку в потоке документа рядом с инициирующим элементом, что предотвратит всплывающую подсказку от инициирующего элемента во время изменения размера окна.
задержка
номер | объект
0
Задержка отображения и скрытия всплывающей подсказки (мс) — не относится к ручному типу триггера
Если указано число, применяется задержка как для скрытия, так и для отображения
Структура объекта: задержка: { "показать": 500, "скрыть": 100}
HTML
логическое значение
ложный
Разрешить HTML во всплывающей подсказке.
Если задано значение true, теги HTML в заголовке всплывающей подсказки будут отображаться во всплывающей подсказке. Если false, свойство innerText будет использоваться для вставки содержимого в DOM.
Используйте текст, если вы беспокоитесь о XSS-атаках.
размещение
строка | функция
«верхний»
Как расположить всплывающую подсказку - авто | топ | дно | слева | верно. Если указано auto , подсказка динамически переориентируется.
Когда функция используется для определения размещения, она вызывается с узлом DOM всплывающей подсказки в качестве первого аргумента и узлом DOM триггерного элемента в качестве второго. Контекст this установлен на экземпляр всплывающей подсказки.
селектор
строка | ложь
ложный
Если предоставлен селектор, объекты всплывающей подсказки будут делегированы указанным целям. На практике это также используется для применения всплывающих подсказок к динамически добавляемым элементам DOM ( jQuery.на поддержке ). См. это и информативный пример.
шаблон
строка
'
'
Базовый HTML для использования при создании всплывающей подсказки.
Заголовок всплывающей подсказки будет вставлен в .tooltip-inner .
.tooltip-стрелка станет стрелкой всплывающей подсказки.
Самый внешний элемент оболочки должен иметь класс .tooltip и role="tooltip" .
наименование
строка | элемент | функция
Значение title по умолчанию, если атрибут title отсутствует.
Если задана функция, она будет вызываться со своим этим 9Ссылка 0009 установлена на элемент, к которому прикреплена всплывающая подсказка.
триггер
строка
'наведение фокуса'
Как срабатывает всплывающая подсказка - нажмите | парить | фокус | руководство. Вы можете передать несколько триггеров; разделяйте их пробелом.
'manual' указывает, что всплывающая подсказка будет запускаться программно через .show() , .hide() и .toggle() методов; это значение нельзя комбинировать ни с каким другим триггером.
'hover' сам по себе приведет к всплывающим подсказкам, которые нельзя активировать с помощью клавиатуры, и их следует использовать только в том случае, если существуют альтернативные методы передачи той же информации для пользователей клавиатуры.
резервные места размещения
массив
['верхний', 'правый', 'нижний', 'левый']
Определите резервные места размещения, предоставив список мест размещения в виде массива (в порядке предпочтения). Для получения дополнительной информации см.
Документы о поведении Поппера
граница
строка | элемент
'отсечение родителей'
Граница ограничения переполнения всплывающей подсказки (применяется только к модификатору preventOverflow Поппера). По умолчанию это 'clippingParents' и может принимать ссылку HTMLElement (только через JavaScript). Для получения дополнительной информации обратитесь к документации Поппера по обнаружению переполнения.
пользовательский класс
строка | функция
Добавить классы во всплывающую подсказку, когда она отображается. Обратите внимание, что эти классы будут добавлены в дополнение к любым классам, указанным в шаблоне. Чтобы добавить несколько классов, разделите их пробелами: 'класс-1 класс-2' .
Вы также можете передать функцию, которая должна возвращать одну строку, содержащую дополнительные имена классов.
дезинфекция
логическое значение
правда
Включить или отключить очистку. При активации «шаблон» и «заголовок» параметры будут очищены. См. раздел дезинфицирующего средства в нашей документации по JavaScript.
список разрешений
объект
Значение по умолчанию
Объект, содержащий разрешенные атрибуты и теги
санитарная обработкаFn
ноль | функция
ноль
Здесь вы можете указать свою собственную функцию дезинфекции. Это может быть полезно, если вы предпочитаете использовать выделенную библиотеку для выполнения очистки.
смещение
массив
| строка | функция
[0, 0]
Смещение всплывающей подсказки относительно цели. Вы можете передать строку в атрибутах данных со значениями, разделенными запятыми, например: данные-бс-смещение = "10,20"
Когда функция используется для определения смещения, она вызывается с объектом, содержащим размещение поппера, ссылку и прямоугольники поппера в качестве первого аргумента. Узел триггерного элемента DOM передается в качестве второго аргумента. Функция должна вернуть массив из двух чисел: [занос, дистанция] .
Для получения дополнительной информации обратитесь к документам по смещению Поппера.
попперконфиг
ноль | объект | функция
ноль
Чтобы изменить конфигурацию Popper по умолчанию в Bootstrap, см. Конфигурация Popper.
Когда функция используется для создания конфигурации Popper, она вызывается с объектом, содержащим конфигурацию Bootstrap по умолчанию Popper. Это поможет вам использовать и объединить настройки по умолчанию с вашей собственной конфигурацией. Функция должна возвращать объект конфигурации для Popper.
Использование функции с
popperConfig
var tooltip = new bootstrap.Tooltip(element, {
popperConfig: функция (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// при необходимости используем defaultBsPopperConfig...
// возвращаем newPopperConfig
}
})
Методы
Асинхронные методы и переходы
Все методы API являются асинхронными и запускают переход . Они возвращаются к вызывающей стороне, как только переход начинается, но до окончания . Кроме того, вызов метода для переходного компонента будет игнорироваться .
Дополнительную информацию см. в нашей документации по JavaScript.
show
Показывает всплывающую подсказку элемента. Возвращает вызывающему объекту до того, как всплывающая подсказка действительно была показана (т. е. до того, как произойдет событие visible.bs.tooltip ). Это считается «ручным» срабатыванием всплывающей подсказки. Подсказки с заголовками нулевой длины никогда не отображаются.
всплывающая подсказка.показать()
hide
Скрывает всплывающую подсказку элемента. Возвращает вызывающему объекту до того, как всплывающая подсказка будет фактически скрыта (т. е. до того, как произойдет событие hidden.bs.tooltip ). Это считается «ручным» срабатыванием всплывающей подсказки.
всплывающая подсказка.скрыть()
toggle
Переключает всплывающую подсказку элемента. Возвращает вызывающему объекту до того, как всплывающая подсказка действительно была показана или скрыта (т. 0009 или событие hidden.bs.tooltip ). Это считается «ручным» срабатыванием всплывающей подсказки.
всплывающая подсказка.toggle()
dispose
Скрывает и уничтожает всплывающую подсказку элемента (удаляет сохраненные данные в элементе DOM). Всплывающие подсказки, использующие делегирование (которые создаются с помощью параметра селектора ), не могут быть уничтожены по отдельности в элементах-триггерах-потомках.
всплывающая подсказка.dispose()
enable
Позволяет отображать всплывающую подсказку элемента. Подсказки включены по умолчанию.
всплывающая подсказка.включить()
отключить
Удаляет возможность отображения всплывающей подсказки элемента. Всплывающая подсказка будет отображаться только в том случае, если она снова включена.
всплывающая подсказка.отключить()
toggleEnabled
Переключает возможность отображения или скрытия всплывающей подсказки элемента.
всплывающая подсказка.toggleEnabled()
update
Обновляет положение всплывающей подсказки элемента.
всплывающая подсказка.обновление()
getInstance
Статический метод , позволяющий получить экземпляр всплывающей подсказки, связанный с элементом DOM
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getInstance(exampleTriggerEl) // Возвращает экземпляр всплывающей подсказки Bootstrap
getOrCreateInstance
Статический метод , который позволяет вам получить экземпляр всплывающей подсказки, связанный с элементом DOM, или создать новый, если он не был инициализирован
Это событие срабатывает немедленно при вызове метода экземпляра show .
показана подсказка
Это событие запускается, когда всплывающая подсказка становится видимой для пользователя (будет ожидать завершения переходов CSS).
hide.bs.tooltip
Это событие запускается сразу после вызова метода экземпляра hide .
скрытая.bs.подсказка
Это событие запускается, когда всплывающая подсказка перестает быть скрытой от пользователя (будет ожидать завершения переходов CSS).
вставленная.bs.подсказка
Это событие запускается после события show.bs.tooltip , когда шаблон всплывающей подсказки был добавлен в DOM.
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = новый bootstrap. Tooltip(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', функция () {
// сделай что-нибудь...
})
всплывающая подсказка.скрыть()
Руководство по всплывающим подсказкам
Подсказки не новы, но ими все еще злоупотребляют.
Определение : Подсказка — это краткое информативное сообщение, которое появляется, когда пользователь взаимодействует с элементом в графическом пользовательском интерфейсе (GUI). Всплывающие подсказки обычно инициируются одним из двух способов: с помощью жеста наведения мыши или с помощью жеста наведения клавиатуры.
(Если вам интересно, что такое наведение клавиатуры: чтобы получить доступ к активным элементам на странице, пользователи обычно могут наводить на них мышь или перемещаться по ним с помощью клавиатуры. Наведение клавиатуры означает сохранение фокуса клавиатуры на том же элементе дольше)
Подсказки можно прикреплять к любому активному элементу (значкам, текстовым ссылкам, кнопкам и т. д.) на странице. Они предоставляют описания или объяснения для своего парного элемента. Таким образом, всплывающие подсказки очень контекстуальны и специфичны и не объясняют общую картину или весь ход выполнения задачи.
Одним из важных аспектов всплывающих подсказок является то, что они активируются пользователем. Таким образом, подсказки, которые появляются на страницах для информирования пользователей о новых функциях или о том, как использовать определенные функции, не являются всплывающими подсказками.
Поскольку всплывающие подсказки инициируются жестом наведения, их можно использовать только на устройствах с мышью или клавиатурой. Обычно они недоступны на сенсорных экранах. (В будущем всплывающие подсказки могут быть инициированы на устройствах с поддержкой отслеживания взгляда, когда взгляд пользователя останавливается на элементе графического интерфейса в течение определенного времени.)
Всплывающие подсказки и всплывающие подсказки
Хотя всплывающие подсказки в основном ограничены настольными компьютерами и ноутбуками, у них есть родственный элемент, который распространен на устройствах с сенсорным экраном: всплывающие подсказки. И всплывающие подсказки, и всплывающие подсказки имеют одну и ту же цель: предоставить полезный дополнительный контент. В следующей таблице показаны основные сходства и различия между всплывающими и всплывающими подсказками.
Подсказки
Всплывающие подсказки
Тип сайта
Рабочий стол
Любой
Инициировано
Наведение (мышь или клавиатура)
Коснитесь/щелкните
прекращено, когда
Пользователь покидает предопределенную область взаимодействия
Пользователь нажимает, чтобы закрыть или щелкает другую область экрана
Парный элемент
Значок, текстовая ссылка, кнопка, изображение
«?» или значок «i»
Тип содержимого
Микроконтент
Микроконтент
В этой статье основное внимание будет уделено всплывающим подсказкам и их использованию на настольных сайтах.
Подсказка-Руководство по использованию
1. Не используйте всплывающие подсказки для информации, которая жизненно важна для выполнения задачи.
Пользователям не нужно искать всплывающую подсказку, чтобы выполнить свою задачу. Всплывающие подсказки лучше всего подходят, когда они предоставляют дополнительное объяснение поля формы, незнакомого некоторым пользователям, или обоснование того, что может показаться необычным запросом. Помните, что всплывающие подсказки исчезают, поэтому инструкции или другая информация, требующая прямого действия, например требования к полям, не должны быть во всплывающей подсказке. (Если это так, людям придется зафиксировать это в своей рабочей памяти, чтобы иметь возможность действовать в соответствии с этим.)
Не надо:
Веб-сайт Amtrak поместил требования к паролю во всплывающую подсказку (доступ к которой осуществляется при наведении указателя мыши). Этот тип информации важен для пользователя, успешно завершившего процесс создания учетной записи, и поэтому должен всегда присутствовать на экране.
Сделать:
Компания FedEx использовала всплывающие подсказки для предоставления дополнительной информации в поля формы доставки. Например, в поле "Электронная почта" была всплывающая подсказка, объясняющая, почему это поле было указано в списке. (Доступ к этой всплывающей подсказке осуществлялся при наведении курсора мыши.)
2. Предоставьте краткое и полезное содержание во всплывающей подсказке.
Подсказки с очевидным или избыточным текстом бесполезны для пользователей. Если вы не можете придумать особенно полезный контент, не предлагайте всплывающую подсказку. В противном случае вы просто добавите информационное загрязнение в свой пользовательский интерфейс и потратите время пользователей, которым не повезло активировать эту всплывающую подсказку.
Кроме того, длинное содержание больше не является «подсказкой», поэтому оно должно быть кратким. Подсказки — это микроконтент — короткие текстовые фрагменты, призванные быть самодостаточными. Ваша копия может быть однострочной или многострочной, если она актуальна и не блокирует связанный контент.
Нельзя:
На веб-сайте Sprint кнопка с надписью Добавить новую строку также имела всплывающую подсказку с текстом Добавить новую строку. Эта подсказка повторяется и не нужна.
Сделать:
У Alibaba была панель поиска со значком камеры без маркировки. Когда пользователи наводили курсор на этот значок, появлялась всплывающая подсказка, которая читалась как Поиск по изображению. Эта функция, вероятно, была незнакома многим пользователям, поэтому всплывающая подсказка, описывающая ее назначение, была полезна.
3. Поддержка и мыши и клавиатуры.
Всплывающие подсказки, которые появляются только при наведении указателя мыши, недоступны для пользователей, использующих для навигации клавиатуру. Будьте инклюзивны в своем дизайне и убедитесь, что ваши всплывающие подсказки доступны с клавиатуры.
Нельзя:
Веб-сайт McDonalds не поддерживал всплывающие подсказки с помощью триггеров клавиатуры. Подсказка, инициируемая наведением мыши (вверху), была недоступна, когда пользователь перемещался по той же странице (внизу).
Сделать:
Википедия поддерживает триггеры клавиатуры для всплывающих подсказок. Одни и те же всплывающие подсказки появлялись при наведении мыши и наведении клавиатуры.
4. Используйте стрелки всплывающей подсказки, когда рядом находятся несколько элементов.
Стрелки помогают четко определить, к какому элементу относится всплывающая подсказка. Когда поблизости находится несколько элементов, эти стрелки помогают избежать путаницы.
Нельзя:
В PowerPoint было несколько значков, расположенных в непосредственной близости друг от друга. Без стрелок во всплывающей подсказке было трудно понять, какие всплывающие подсказки соответствуют какому элементу.
Сделать:
Witeboard использовал стрелки всплывающей подсказки, чтобы указать, для какого значка предназначена подсказка. Хотя значки расположены достаточно далеко друг от друга, стрелки обеспечивают дополнительную четкость с минимальным визуальным шумом.
5. Постоянно используйте всплывающие подсказки на своем сайте.
Всплывающие подсказки трудно обнаружить, потому что им часто не хватает визуальных подсказок. Если всплывающие подсказки беспорядочно отображаются на вашем сайте, люди могут никогда их не обнаружить. Важно быть последовательным и предоставлять всплывающие подсказки для всех элементов вашего дизайна, а не только для некоторых. Если только некоторые элементы нуждаются в дополнительных пояснениях, используйте всплывающие подсказки для этих элементов.
Нельзя:
На веб-сайте Business Insider использовались всплывающие подсказки для 2 из 3 значков в меню навигации. (Примечание: на главной странице веб-сайта Business Insider у значка земного шара была всплывающая подсказка с надписью «Значок земного шара». Однако этот ярлык не был ни полезным, ни указывающим на его функциональность: выбор языка.) В целом мы не рекомендуем использовать значки без меток и сокрытие меток внутри всплывающих подсказок, но это нарушение становится еще более серьезным, когда метки всплывающих подсказок развернуты непоследовательно.
Сделать:
Todoist постоянно использовал всплывающие подсказки. Все три значка в основном разделе имеют всплывающие подсказки. Последовательность вселяет уверенность в пользователей, оправдывая их ожидания.
Дополнительные рекомендации
Предоставляет всплывающие подсказки для немаркированных значков.
Большинство значков имеют некоторый уровень двусмысленности, поэтому мы рекомендуем текстовые метки для всех значков. Если вы слишком упрямы, чтобы давать текстовые метки для значков на своем сайте, по крайней мере, вы можете предоставить своим пользователям описательную всплывающую подсказку.
Убедитесь, что всплывающие подсказки имеют умеренный контраст по отношению к фону.
Пользователи обычно смотрят, куда они нажимают (или наводят курсор). Однако из-за отсутствия всплывающих подсказок важен умеренный контраст, чтобы пользователи могли видеть текст во всплывающей подсказке. Кроме того, пользователям с нарушениями зрения особенно трудно читать белую страницу со светло-серыми всплывающими подсказками.
Расположите всплывающие подсказки так, чтобы они не блокировали соответствующий контент.
Когда всплывающие подсказки блокируют контент, к которому они относятся, они заставляют пользователей повторять шаги (например, перемещать мышь, чтобы закрыть всплывающую подсказку, снова прочитать информацию или поле, навести курсор, чтобы открыть всплывающую подсказку). Проверьте расположение всплывающей подсказки, чтобы убедиться, что содержимое не блокирует другую информацию, имеющую отношение к цели пользователя.