fix: hide tooltip on mobile/touch, adaptive vendor info bar

This commit is contained in:
2026-05-12 16:26:57 +03:00
parent 5a8471e85c
commit d37b45f66c
2 changed files with 36 additions and 11 deletions
+16 -11
View File
@@ -26,12 +26,15 @@
let clickAudioCtx = null;
// ── Vendor tooltip ──
// ── Vendor tooltip (desktop / hover-capable devices only) ──
const canHover = window.matchMedia('(hover: hover) and (pointer: fine)').matches;
const tooltip = document.createElement('div');
tooltip.className = 'vendor-tooltip';
document.body.appendChild(tooltip);
tooltip.addEventListener('mouseenter', () => { overTooltip = true; clearTimeout(hideTimer); });
tooltip.addEventListener('mouseleave', () => { overTooltip = false; hideTooltip(); });
if (canHover) {
tooltip.addEventListener('mouseenter', () => { overTooltip = true; clearTimeout(hideTimer); });
tooltip.addEventListener('mouseleave', () => { overTooltip = false; hideTooltip(); });
}
let tooltipTimer = null;
let hideTimer = null;
@@ -211,14 +214,16 @@
if (wasSelected) scrollAfterDeselect();
else scrollToResultsSmooth();
});
node.addEventListener("mouseenter", () => {
clearTimeout(tooltipTimer);
tooltipTimer = setTimeout(() => showTooltip(node, vendor), 220);
});
node.addEventListener("mouseleave", () => {
clearTimeout(tooltipTimer);
hideTooltip();
});
if (canHover) {
node.addEventListener("mouseenter", () => {
clearTimeout(tooltipTimer);
tooltipTimer = setTimeout(() => showTooltip(node, vendor), 220);
});
node.addEventListener("mouseleave", () => {
clearTimeout(tooltipTimer);
hideTooltip();
});
}
el.vendorList.appendChild(node);
}