Socket
Socket
Sign inDemoInstall

@braid/rafscroll

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@braid/rafscroll

Eased scrolling (smooth scroll) using requestAnimationFrame


Version published
Maintainers
2
Created
Source

Build Status GitHub file size in bytes

Rafscroll

Rafscroll is a small library (<3kb esm or <4kb umd) to smooth scroll windows and DOM elements by using a browser’s native requestAnimationFrame, ensuring optimal scrolling without impacting site performance. Rafscroll can operate on both the x and y axis with various easing functions.

Demo here

Get Started

Note: This readme assumes you are using a build tool like webpack

First install from NPM or yarn:

npm install @braid/rafscroll
- or -
yarn add @braid/rafscroll

Then import/require the library in your front end code:

// main.js

import rafscroll from '@braid/rafscroll'

Rafscroll exports a function. Calling this function creates a new instance of rafscroll.

let scroller = rafscroll(element, {...options})

The returned object can then have it's X or Y axis animated by calling scrollTop() or/and scrollLeft(). The return value of either of these is a Promise that resolves when the scroll animation is complete. For convenience rafscroll also uses some intelligent defaults — the window is the default element, and the the default easing is quadratic.

A full example:

import rafscroll from '@braid/rafscroll'

// Scroll 100px down the page after 1 second.
setTimeout(async () => {
    await rafscroll().scrollTop(100)
    alert('Finished scrolling')
}, 1000)

Options

Available options to pass as a second argument to rafscroll:

OptionValuesDefault
durationany Number in milliseconds500
easing'quadratic', 'linear', or a custom Function'quadratic'

Custom easing functions receive an object containing 4 properties:

{current, duration, posDelta, posStart}

They should return a numeric value representing the current position. For example the linear easing function already included in rafscroll is:

function ({current, duration, posDelta, posStart}) {
    return (current / duration) * posDelta + posStart
}

Sponsor

Rafscroll is written and maintained by Braid LLC, and offered freely under an MIT license.

Braid LLC

Keywords

FAQs

Package last updated on 15 Feb 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc