Tooltipster предоставляет гибкую систему управления всплывающими
подсказками. В мобильных устройствах ключевым аспектом является
ограничение пространства и особенности сенсорного ввода. В отличие от
десктопной версии, где основными триггерами являются hover
и focus, на мобильных устройствах основным триггером
становится tap.
В Tooltipster триггеры задаются через опцию trigger. Для
мобильных устройств используются следующие варианты:
$('.tooltip').tooltipster({
trigger: 'custom',
triggerOpen: {
tap: true
},
triggerClose: {
tap: true,
scroll: true
}
});
triggerOpen — определяет действия,
которые открывают подсказку.triggerClose — определяет действия,
которые закрывают подсказку.tap — открытие или закрытие подсказки
при нажатии на элемент.scroll — закрытие подсказки при
прокрутке страницы.На мобильных устройствах часто требуется сочетание нескольких событий
для управления подсказкой. Tooltipster позволяет комбинировать события
через объектные синтаксис triggerOpen и
triggerClose. Например:
$('.tooltip').tooltipster({
trigger: 'custom',
triggerOpen: {
tap: true,
mouseenter: false
},
triggerClose: {
tap: true,
scroll: true,
click: true
}
});
Такая конфигурация гарантирует, что подсказка будет корректно
реагировать на тап, закрываться при скролле или клике вне элемента, а
стандартный mouseenter для мобильных устройств будет
отключен.
Tooltipster не имеет встроенной функции для автоматического переключения триггеров в зависимости от устройства, но это можно реализовать через проверку ширины окна или использование библиотек для детекции тач-событий:
var isMobile = ('ontouchstart' in window) || (navigator.maxTouchPoints > 0);
$('.tooltip').tooltipster({
trigger: isMobile ? 'custom' : 'hover',
triggerOpen: isMobile ? { tap: true } : { mouseenter: true },
triggerClose: isMobile ? { tap: true, scroll: true } : { mouseleave: true }
});
ontouchstart — проверка поддержки
сенсорного ввода.navigator.maxTouchPoints — определяет
количество поддерживаемых тач-пальцев.delay:$('.tooltip').tooltipster({
delay: 200,
trigger: 'custom',
triggerOpen: { tap: true },
triggerClose: { tap: true }
});
interactive: true. Это предотвращает закрытие подсказки при
тапе на её содержимое:$('.tooltip').tooltipster({
interactive: true,
trigger: 'custom',
triggerOpen: { tap: true },
triggerClose: { tap: true, scroll: true }
});
tap в triggerClose..tooltipster('open') и
.tooltipster('close') удобно сочетать с мобильными
триггерами.$('.tooltip').on('touchstart', function() {
$(this).tooltipster('open');
});
function updateTooltipTriggers() {
var isMobile = window.innerWidth <= 768;
$('.tooltip').tooltipster('option', 'trigger', isMobile ? 'custom' : 'hover');
}
$(window).on('resize', updateTooltipTriggers);
updateTooltipTriggers();
functionReady и методы closeAll:$('.tooltip').tooltipster({
trigger: 'custom',
triggerOpen: { tap: true },
functionReady: function(instance, helper){
$('.tooltip').not(helper.origin).tooltipster('close');
}
});
Мобильные триггеры в Tooltipster обеспечивают полноценное
взаимодействие с подсказками на сенсорных устройствах, сохраняя гибкость
настройки поведения, комбинирования событий и управления
открытием/закрытием подсказок программно. Правильная конфигурация
triggerOpen и triggerClose, совместно с
проверкой сенсорного устройства и дополнительными опциями
(interactive, delay), позволяет создавать
удобные и отзывчивые интерфейсы для мобильных пользователей.