svelte-juxtapose
Easily juxtapose two blocks with a interactive slider. Currently only works with a horizontal slider. Want a vertical version? Let me know.
By Sawyer Click
Examples
Simple


Usage
Slots
| Name | Description |
|---|---|
| Before | The "bottom" layer. Completely covered while slider is at 100%. |
| After | The "top" layer. Completely covered while slider is at 0%. |
Props
| Name | Default | Description |
|---|---|---|
| starting | 50 | The percentage at which the slider should start. Should be given as a number equal to or greater than zero and equal to or less than zero. |
| width | 600px | The width of the container. Should ideally be set by using bind:clientWidth on the parent element. |
| height | 300px | The height of the container. Both blocks should have a similar aspect ratio so that
this calculation could simply be 9/16 × width. |
| class | "" | Classes to apply to the container element. |
| style | undefined | Styles to apply to the container element. |
| --thumb-size | calc(var(--height) / 10) | The size of the thumb. |
| --thumb-color | #000000 | The color of the thumb. |
Events
| Name | Properties | Description |
|---|---|---|
| on:start | active, position, event | Fires when the slider has a mousedown or touchstart event |
| on:move | active, position, event | Fires when the slider has been moved. Movement is limited to 0-100% of the container width. |
| on:end | active, position, event | Fires when the window has a mouseup or touchend event, ending
the movement. |