svelte-scrolling Svelte Themes

Svelte Scrolling

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 id="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. The element to scroll to must be referenced using the scrollRef action or id.

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/easing][svelte-easing] or 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

Top categories

Loading Svelte Themes