Skip to content

Commit

Permalink
Listen touches only on small screens
Browse files Browse the repository at this point in the history
  • Loading branch information
baileys-li committed Aug 8, 2024
1 parent 0e50d8f commit 42a9fbe
Showing 1 changed file with 14 additions and 9 deletions.
23 changes: 14 additions & 9 deletions view/main/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@ function changeExpanded(willBeExpanded = false): void {
document.body.classList.toggle('is-main-collapsed', !isExpanded)
}

main.addEventListener('touchmove', event => {
function onTouchStart(event: TouchEvent): void {
startY = event.touches[0].clientY
}

function onTouchMove(event: TouchEvent): void {
event.preventDefault()
let endY = event.changedTouches[0].clientY
let diff = endY - startY
Expand All @@ -32,14 +36,9 @@ main.addEventListener('touchmove', event => {
if (allowPositive || allowNegative) {
main.style.setProperty('--touch-diff', `${diff}px`)
}
})

main.addEventListener('touchstart', event => {
event.preventDefault()
startY = event.touches[0].clientY
})
}

main.addEventListener('touchend', event => {
function onTouchEnd(event: TouchEvent): void {
let endY = event.changedTouches[0].clientY
let diff = startY - endY

Expand All @@ -48,7 +47,7 @@ main.addEventListener('touchend', event => {
if (Math.abs(diff) > THRESHOLD) {
changeExpanded(diff > 0)
}
})
}

function onScroll(): void {
changeExpanded(false)
Expand All @@ -57,8 +56,14 @@ function onScroll(): void {
function init(): void {
if (mobile.matches) {
window.addEventListener('scroll', onScroll, { once: true })
main.addEventListener('touchstart', onTouchStart)
main.addEventListener('touchmove', onTouchMove)
main.addEventListener('touchend', onTouchEnd)
} else {
window.removeEventListener('scroll', onScroll)
main.removeEventListener('touchstart', onTouchStart)
main.removeEventListener('touchmove', onTouchMove)
main.removeEventListener('touchend', onTouchEnd)
}
}

Expand Down

0 comments on commit 42a9fbe

Please sign in to comment.