fix: hard lock scroll at hero end via scroll position clamp
This commit is contained in:
@@ -110,25 +110,20 @@ export default function CloudRevealSection() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// %100'de aşağı scroll'u kilitle
|
// Scroll pozisyonunu hero sonunda kilitle
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const onWheel = (e: WheelEvent) => {
|
const lockScroll = () => {
|
||||||
if (scrollYProgress.get() >= 0.99 && e.deltaY > 0) {
|
const section = sectionRef.current
|
||||||
e.preventDefault()
|
if (!section) return
|
||||||
|
// Hero'nun scroll edebileceği maksimum pozisyon
|
||||||
|
const maxY = section.offsetTop + section.offsetHeight - window.innerHeight
|
||||||
|
if (window.scrollY > maxY) {
|
||||||
|
window.scrollTo({ top: maxY, behavior: 'instant' })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const onTouchMove = (e: TouchEvent) => {
|
window.addEventListener('scroll', lockScroll, { passive: true })
|
||||||
if (scrollYProgress.get() >= 0.99) {
|
return () => window.removeEventListener('scroll', lockScroll)
|
||||||
e.preventDefault()
|
}, [])
|
||||||
}
|
|
||||||
}
|
|
||||||
window.addEventListener('wheel', onWheel, { passive: false })
|
|
||||||
window.addEventListener('touchmove', onTouchMove, { passive: false })
|
|
||||||
return () => {
|
|
||||||
window.removeEventListener('wheel', onWheel)
|
|
||||||
window.removeEventListener('touchmove', onTouchMove)
|
|
||||||
}
|
|
||||||
}, [scrollYProgress])
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const canvas = canvasRef.current
|
const canvas = canvasRef.current
|
||||||
|
|||||||
Reference in New Issue
Block a user