Skip to content

Commit 972b453

Browse files
committed
chore: fix scroll
1 parent 496ada0 commit 972b453

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

app/pages/about.vue

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,11 @@ const activeBtnEl = shallowRef<HTMLElement>()
9191
let closeTimer: ReturnType<typeof setTimeout> | undefined
9292
let lastOpenTime = 0
9393
94+
// Mouse tracking for scroll interactions
95+
let mouseX = 0
96+
let mouseY = 0
97+
let scrollTimer: ReturnType<typeof setTimeout> | undefined
98+
9499
function cancelClose() {
95100
if (closeTimer) {
96101
clearTimeout(closeTimer)
@@ -256,16 +261,43 @@ function onDocumentKeydown(e: KeyboardEvent) {
256261
}
257262
}
258263
264+
function onMouseMove(e: MouseEvent) {
265+
mouseX = e.clientX
266+
mouseY = e.clientY
267+
}
268+
269+
function checkHover() {
270+
const el = document.elementFromPoint(mouseX, mouseY)
271+
const btn = el?.closest('button[data-cid]') as HTMLElement | null
272+
if (btn) {
273+
openById(Number(btn.dataset.cid), btn)
274+
}
275+
}
276+
277+
function onScroll() {
278+
if (activeContributor.value) {
279+
setActiveBtnExpanded(null, false)
280+
activeContributor.value = undefined
281+
}
282+
clearTimeout(scrollTimer)
283+
scrollTimer = setTimeout(checkHover, 150)
284+
}
285+
259286
let activeBtnDom: HTMLElement | null = null
260287
261288
onMounted(() => {
262289
document.addEventListener('pointerdown', onDocumentPointerDown)
263290
document.addEventListener('keydown', onDocumentKeydown)
291+
window.addEventListener('scroll', onScroll, { passive: true })
292+
window.addEventListener('mousemove', onMouseMove, { passive: true })
264293
})
265294
onBeforeUnmount(() => {
266295
cancelClose()
296+
clearTimeout(scrollTimer)
267297
document.removeEventListener('pointerdown', onDocumentPointerDown)
268298
document.removeEventListener('keydown', onDocumentKeydown)
299+
window.removeEventListener('scroll', onScroll)
300+
window.removeEventListener('mousemove', onMouseMove)
269301
})
270302
</script>
271303

0 commit comments

Comments
 (0)