Socket
Book a DemoInstallSign in
Socket

vanilla-smoothie

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vanilla-smoothie

A minimal smooth scroll library based on vanilla JavaScript.

2.2.5
latest
Source
npmnpm
Version published
Maintainers
1
Created
Source

vanilla-smoothie.js

npm version Build Status License MIT

Feature

  • Simple - It an intuitive and simple API, you can write as you like.
  • Minimal - It doesn't depend on other packages, so it has only the minimum necessary functions.
  • Universal - It can be used in various environments such as TypeScript and Front-end frameworks, Vanilla.js.

Installation

Node.js

You can install using npm or yarn and this method is recommended.

npm install --save vanilla-smoothie

CDN

You can also use CDN. Suitable for creating small websites and samples.

<script src="https://cdn.jsdelivr.net/npm/vanilla-smoothie@2.2.5/dist/vanilla-smoothie.min.js"></script>

Use

You can achieve smooth scroll with a simple and intuitive way of writing.

In addition, you can write any way you like, such as Callback or Promise.

const vanillaSmoothie = require('vanilla-smoothie')

// Use callback
vanillaSmoothie.scrollTo('#anchor-01', {
  duration: 800
}, () => {
  console.log('Scrolled!!')
})

// Use Promise
vanillaSmoothie.scrollTo('#anchor-02', {
  duration: 800
}).then(() => {
  console.log('Scrolled!!')
})

// Use async/await
(async () => {
  await vanillaSmoothie.scrollTo('#anchor-03', {
    duration: 800
  })
  console.log('Scrolled!!')
})()

Example

Sample code to easily implement the anchor link.

document.querySelectorAll('a[href^="#"]').forEach((anchor) => {
  anchor.addEventListener('click', (event) => {
    vanillaSmoothie.scrollTo(event.target.getAttribute('href'), {
      duration: 500
    })
  })
})

Methods

scrollTo(target[, option, callback])

Scroll to a specified destination.

For target, selector or offset is entered. When the selector is specified for the target, the target element is focused after scroll.

Refer to Option for option parameter.

// Selector
vanillaSmoothie.scrollTo('#id-name')

// Offset Top
vanillaSmoothie.scrollTo(300)

// with option and callback
vanillaSmoothie.scrollTo('#id-name', {
  duration: 1000
}, () => {
  console.log('Callback')
})

scrollTop([option, callback])

Scroll to the top of the page.

Refer to Option for option parameter.

vanillaSmoothie.scrollTop(1000, () => {
  console.log('Callback')
})

scrollBottom([duration, callback])

Scroll to the bottom of the page.

Refer to Option for option parameter.

vanillaSmoothie.scrollBottom(1000, () => {
  console.log('Callback')
})

Option

OptionTypeDescriptiondefault
elementobjectTarget scroll element.window
durationnumberDefault number of milliseconds to scroll.500
adjustnumberEnter a value when you want to adjust the scroll position.0
easingstringEasing name.linear

Easing

  • linear
  • easeInQuad
  • easeOutQuad
  • easeInOutQuad
  • easeInCubic
  • easeOutCubic
  • easeInOutCubic
  • easeInQuart
  • easeOutQuart
  • easeInOutQuart
  • easeInQuint
  • easeOutQuint
  • easeInOutQuint

Browsers support

IE / Edge
Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
iOS Safari
iOS Safari
Edgelast 2 versionslast 2 versionslast 2 versionslast 2 versions

Contributing

Please create an Issue or Pull requests if you have any improvements!

Development

Use yarn to download packages and run scripts.

Before creating a Pull requests, execute yarn test and check the operation of the library.

# Install packages
yarn

# TypeScript compile and launch local server to http://localhost:3000
yarn dev

# Build TypeScript and Document
yarn build

# Check TypeScript syntax
yarn lint

# Run E2E test
yarn test

Other commands look to package.json.

License

MIT License.

FAQs

Package last updated on 23 Sep 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

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.