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
+20
View File
@@ -798,3 +798,23 @@
.vib-link.mont { background: linear-gradient(135deg, #1f4ea3, #3978e0); color: #fff; } .vib-link.mont { background: linear-gradient(135deg, #1f4ea3, #3978e0); color: #fff; }
.vib-link.site { background: #fff; color: #2a5aaa; border: 1px solid #c8d8f5; } .vib-link.site { background: #fff; color: #2a5aaa; border: 1px solid #c8d8f5; }
.vib-link:hover { opacity: .82; transform: translateY(-1px); } .vib-link:hover { opacity: .82; transform: translateY(-1px); }
/* ── Mobile: no hover tooltips ── */
@media (hover: none), (max-width: 768px) {
.vendor-tooltip { display: none !important; }
}
/* ── Mobile: adaptive vendor info bar ── */
@media (max-width: 768px) {
.vendor-info-bar {
flex-direction: column;
align-items: stretch;
gap: 12px;
padding: 14px;
}
.vib-logo {
width: 100%;
height: 120px;
}
.vib-logo img { max-height: 90px; }
}
+6 -1
View File
@@ -26,12 +26,15 @@
let clickAudioCtx = null; 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'); const tooltip = document.createElement('div');
tooltip.className = 'vendor-tooltip'; tooltip.className = 'vendor-tooltip';
document.body.appendChild(tooltip); document.body.appendChild(tooltip);
if (canHover) {
tooltip.addEventListener('mouseenter', () => { overTooltip = true; clearTimeout(hideTimer); }); tooltip.addEventListener('mouseenter', () => { overTooltip = true; clearTimeout(hideTimer); });
tooltip.addEventListener('mouseleave', () => { overTooltip = false; hideTooltip(); }); tooltip.addEventListener('mouseleave', () => { overTooltip = false; hideTooltip(); });
}
let tooltipTimer = null; let tooltipTimer = null;
let hideTimer = null; let hideTimer = null;
@@ -211,6 +214,7 @@
if (wasSelected) scrollAfterDeselect(); if (wasSelected) scrollAfterDeselect();
else scrollToResultsSmooth(); else scrollToResultsSmooth();
}); });
if (canHover) {
node.addEventListener("mouseenter", () => { node.addEventListener("mouseenter", () => {
clearTimeout(tooltipTimer); clearTimeout(tooltipTimer);
tooltipTimer = setTimeout(() => showTooltip(node, vendor), 220); tooltipTimer = setTimeout(() => showTooltip(node, vendor), 220);
@@ -219,6 +223,7 @@
clearTimeout(tooltipTimer); clearTimeout(tooltipTimer);
hideTooltip(); hideTooltip();
}); });
}
el.vendorList.appendChild(node); el.vendorList.appendChild(node);
} }