svelte-scrolling
                                
                                 svelte-scrolling copied to clipboard
                                
                                    svelte-scrolling copied to clipboard
                            
                            
                            
                        Lightweight Svelte plugin to scroll to given elements with smooth animations
Svelte Scrolling
Scroll to given elements with smooth animation.
Install
yarn add svelte-scrolling
Usage
<script>
  import { scrollTo, scrollRef, scrollTop } from 'svelte-scrolling'
</script>
<nav>
  <a use:scrollTo={'home'}>Home</a>
  <a use:scrollTo={'about'}>About</a>
  <a use:scrollTo={{ ref: 'blog', duration: 1000 }}>Blog</a>
</nav>
<section use:scrollRef={'home'}></section>
<section use:scrollRef={'about'}></section>
<section use:scrollRef={'blog'}></section>
<button on:click={() => scrollTop()}>Go to top</button>
Actions
scrollTo={reference | options}
This action listens for click (touchstart) events and scrolls to elements with smooth animation.
Accepts as parameter only the element reference or all global options:
- ref: Element reference.
To set the global options, the ref property is required
scrollRef={reference}
This action adds a reference to the elements that scrollTo should scroll
Accepts as parameter a string with the name to reference the element
Functions
scrollTop(options?)
Scroll to the top of the page
scrollBottom(options?)
Scroll to the end of the page
scrollLeft(options?)
Scroll to the end of left the page
scrollRight(options?)
Scroll to the end of right the page
scrollElement(reference, options?)
Scroll to element with smooth animation.
scrollPosition(position, options?)
Scroll to a position on the page
API
Global Options
| Property | Default | Description | 
|---|---|---|
| duration | 500 | Duration (in milliseconds) of the animation. | 
| offset | 0 | Offset that should be applied when scrolling. | 
| easing | cubicInOut | Easing function to be used when animating. Use any easing from svelte/easingor a custom easing function. | 
| passive | true | A boolean value that, if true, indicates that the function specified by listener will never call preventDefault(). | 
| onStart | noop | A callback function that should be called when scrolling has started. Receives the element, offset, duration and endPosition as a parameter. | 
| onDone | noop | A callback function that should be called when scrolling has started. Receives the element, offset, duration and endPosition as a parameter. | 
Override global options
<script>
  import { setGlobalOptions } from 'svelte-scrolling'
  setGlobalOptions({
    duration: 800
  })
</script>
License
MIT
Copyright (c) 2021-present, Valmisson Grizorte