diff --git a/core/src/components/segment-view/segment-view.tsx b/core/src/components/segment-view/segment-view.tsx index 8c178e796b..4dc4fe2390 100644 --- a/core/src/components/segment-view/segment-view.tsx +++ b/core/src/components/segment-view/segment-view.tsx @@ -42,11 +42,14 @@ export class SegmentView implements ComponentInterface { @Listen('scroll') handleScroll(ev: Event) { - const { initialScrollLeft, previousScrollLeft } = this; + const { previousScrollLeft } = this; const { scrollLeft, offsetWidth } = ev.target as HTMLElement; // Set initial scroll position if it's undefined - this.initialScrollLeft = initialScrollLeft ?? scrollLeft; + // Must be a multiple of the offset width + if (this.initialScrollLeft === undefined) { + this.initialScrollLeft = Math.round(scrollLeft / offsetWidth) * offsetWidth; + } // Determine the scroll direction based on the previous scroll position const scrollDirection = scrollLeft > previousScrollLeft ? 'right' : 'left';