Per Scrollrad von Anker zu Anker?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Dafür gibt es das wheel-Event:

https://developer.mozilla.org/en-US/docs/Web/Events/wheel#Browser_compatibility

Über deltaY kannst du herausfinden, in welche Richtung gescrollt wurde. Anschließend kannst du mittels scrollTop auf dein scrollbares Element (bspw. der Inhaltswrapper) die aktuelle Scrollposition herausfinden.

https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop

Danach kannst du mittels element.getBoundingClientRect() bzw. mittels $(element).position (wenn du jQuery nutzt) die Position aller Elemente vergleichen und das nächste Element in der jeweiligen Richtung aussuchen.

https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect
https://api.jquery.com/position/

Bei getBoundingClientRect musst du aufpassen, da es die Position relativ zum Viewport wiedergibt, d.h. du müsstest die Werte von dem Elternelement nochmal abziehen. Die einfachere Variante wäre jQuery.

Danach mittels scrollTop zu der Position scrollen.