2 Commits

Author SHA1 Message Date
Valentin Silyutin
db9df24786 v4.1.0 2025-09-22 12:57:04 +04:00
Valentin Silyutin
dde1b4f94e Disable mouseenter/mouseleave for touch devices 2025-09-22 12:55:07 +04:00
3 changed files with 13 additions and 5 deletions

View File

@@ -1,3 +1,7 @@
## v4.1.0
- Отключаем события mouseenter/mouseleave для toch-устройств
## v4.0.0 ## v4.0.0
- Переработана логика инициализации и обновления тултипа - Переработана логика инициализации и обновления тултипа

View File

@@ -8,6 +8,8 @@ const attributeToOption = (attribute) => {
return attribute.charAt(0).toLowerCase() + attribute.slice(1); return attribute.charAt(0).toLowerCase() + attribute.slice(1);
}; };
const isTouchDevice = () => 'ontouchstart' in window || navigator.maxTouchPoints > 0;
export const createTooltip = ($el, content, options) => { export const createTooltip = ($el, content, options) => {
options = { options = {
animation: [ animation: [
@@ -414,11 +416,13 @@ export const createTooltip = ($el, content, options) => {
for (const trigger of options.trigger.split(' ')) { for (const trigger of options.trigger.split(' ')) {
switch (trigger) { switch (trigger) {
case 'mouseenter': { case 'mouseenter': {
if (!isTouchDevice()) {
$el.addEventListener('mouseenter', $el._tooltip.mouseEnterListener); $el.addEventListener('mouseenter', $el._tooltip.mouseEnterListener);
listeners.push({ el: $el, event: 'mouseenter', listener: $el._tooltip.mouseEnterListener }); listeners.push({ el: $el, event: 'mouseenter', listener: $el._tooltip.mouseEnterListener });
$el.addEventListener('mouseleave', $el._tooltip.mouseLeaveListener); $el.addEventListener('mouseleave', $el._tooltip.mouseLeaveListener);
listeners.push({ el: $el, event: 'mouseleave', listener: $el._tooltip.mouseLeaveListener }); listeners.push({ el: $el, event: 'mouseleave', listener: $el._tooltip.mouseLeaveListener });
}
break; break;
} }
case 'click': { case 'click': {

View File

@@ -1,6 +1,6 @@
{ {
"name": "@advdominion/tooltip", "name": "@advdominion/tooltip",
"version": "4.0.0", "version": "4.1.0",
"type": "module", "type": "module",
"packageManager": "yarn@4.9.4", "packageManager": "yarn@4.9.4",
"main": "index.js", "main": "index.js",