scroll-snap-api
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

scroll-snap-api

Interact with CSS scroll-snap.

Zero dependencies.

Automatically accounts for scroll-padding.

Install

yarn add scroll-snap-api

npm install --save scroll-snap-api

Or use directly

import * as scrollSnapApi from 'https://cdn.pika.dev/scroll-snap-api';

Usage

Scroll an element to the next snap position in a direction

import { scrollSnapToNext } from 'scroll-snap-api';

scrollSnapToNext( scrollingElement, 'right' ); // 'left', 'right', 'up', 'down'

Get the possible scroll positions

import { getScrollSnapPositions } from 'scroll-snap-api';

const scroll = getScrollSnapPositions( scrollingElement );

/*
{
  x: [ 0, 100, 150, 200 ],
  y: [ 0, 200, 400, 600, 800 ],
}
*/

Get the raw snap positions

Note: these are not scroll positions.

import { getSnapPositions } from 'scroll-snap-api';

const snap = getSnapPositions( scrollingElement );

/*
{
  x: {
    start: [ 0, 100 ],
    center: [ 300 ],
    end: [ 500 ],
  },
  y: {
    start: [ 0 ],
    center: [ 250, 500, 750 ],
    end: [ 1000 ],
  },
}
*/

Diagram showing difference between function calls

TODO

  • More documentation
  • Support dir="rtl"

Readme

Keywords

none

Package Sidebar

Install

npm i scroll-snap-api

Weekly Downloads

399

Version

1.0.2

License

MIT

Unpacked Size

53.8 kB

Total Files

9

Last publish

Collaborators

  • lachlanarthur