1

2

Jak to funguje:

overflow: hidden vypne klasické scrollování.

Událost wheel zachytí pohyb kolečka myši.

Podle směru (deltaY šipka vpravo 0 = dolů, šipka vlevo 0 = nahoru) se zvýší nebo sníží index aktuální sekce.

scrollIntoView({ behavior: 'smooth' }) skočí na začátek daného containeru.

Proměnná isScrolling brání tomu, aby se při rychlém kolečku přeskočilo více sekcí najednou.

Pokud chceš, aby to bylo úplně „instantní“ bez animace, můžeš dát scrollIntoView({ behavior: 'auto' }).