diff --git a/packages/graphics-components/src/components/BeforeAfter/BeforeAfter.svelte b/packages/graphics-components/src/components/BeforeAfter/BeforeAfter.svelte index 3a79ef3..c41d138 100644 --- a/packages/graphics-components/src/components/BeforeAfter/BeforeAfter.svelte +++ b/packages/graphics-components/src/components/BeforeAfter/BeforeAfter.svelte @@ -145,20 +145,29 @@ /** Move the slider */ const move = (e: MouseEvent | TouchEvent) => { - if (sliding && imgOffset) { - const el = - e instanceof TouchEvent && e.touches ? e.touches[0] : (e as MouseEvent); - const figureOffset = - figure ? - parseInt(window.getComputedStyle(figure).marginLeft.slice(0, -2)) - : 0; - let x = el.pageX - figureOffset - imgOffset.left; - x = - x < handleMargin ? handleMargin - : x > w - handleMargin ? w - handleMargin - : x; - offset = x / w; + if (!sliding || !imgOffset) return; + + let pointer: MouseEvent | Touch | undefined; + + if ('touches' in e) { + pointer = e.touches[0] ?? e.changedTouches[0]; + } else { + pointer = e; } + + if (!pointer) return; + + const figureOffset = + figure ? + parseInt(window.getComputedStyle(figure).marginLeft.slice(0, -2)) + : 0; + + let x = pointer.pageX - figureOffset - imgOffset.left; + x = + x < handleMargin ? handleMargin + : x > w - handleMargin ? w - handleMargin + : x; + offset = x / w; }; /** Starts the slider */ diff --git a/pages/Stories/One/+page.svelte b/pages/Stories/One/+page.svelte new file mode 100644 index 0000000..0e91784 --- /dev/null +++ b/pages/Stories/One/+page.svelte @@ -0,0 +1,42 @@ + + + + + + + diff --git a/pages/Stories/One/One.svelte b/pages/Stories/One/One.svelte new file mode 100644 index 0000000..fdd2035 --- /dev/null +++ b/pages/Stories/One/One.svelte @@ -0,0 +1,59 @@ + + + + {#snippet backgroundSnippet()} + + + Current step: {index + 1}/{count} + + + + Offset in current step + + + Total progress + + {/snippet} + {#snippet foregroundSnippet()} + + Step 1 + Step 2 + Step 3 + Step 4 + Step 5 + {/snippet} + + +
+ Current step: {index + 1}/{count} +
Offset in current step
Total progress