Lightweight Scrolling Plugin ScrollBooster

Add-ons
2026-07-25 22:36 3 次浏览 • 0 次下载 25.6KB
Lightweight Scrolling Plugin ScrollBooster

Release Date: 2018-3-30 1:49

ScrollBooster is only 2 KB in size

Installation

You can install it through the npm package manager or simply remove the script tag directly:

1
npm i scrollbooster

Import the JS file

Usage

1
2
3
4
5
import ScrollBooster from 'scrollbooster'
let sb = new ScrollBooster({
viewport: document.querySelector('.viewport') // required
// ...other options
})

Options

OptionTypeDefaultDescription
viewportelementnullViewport - outer element
contentelementFirst child of viewport elementScrollable content inside the viewport
handleelementViewport elementElement that responds to drag events
bouncebooleantrueInertial bounce effect (allows scrolling beyond the viewport boundaries)
textSelectionbooleanfalseAllows text selection
frictionfloat0.05Scroll friction factor (scrolling inertia after releasing the pointer)
bounceForcefloat0.1Bounce effect factor
emulateScrollbooleanfalseSimulate viewport mouse wheel events (for cases where scrolling uses transform properties)
onUpdatefunctionnoopUser function that updates element properties based on received coordinates (see the demo example). Receives an object with the following properties: position, viewport, and content. Each property contains the measurements required to perform the actual scrolling

Methods

MethodDescription
setPositionSets a new scroll position in the viewport. Receives an object with x and y properties
updateMetricsUpdates element dimensions. Useful for image loading or other dynamic content
getUpdateReturns the current metrics and coordinates in the same format as onUpdate
destroyDestroys event listeners for all instances

Complete Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
let viewport = document.querySelector('.viewport')
let content = document.querySelector('.viewport-content')
let sb = new ScrollBooster({
viewport: viewport,
content: content,
handle: document.querySelector('.viewport-scroller'),
bounce: true,
textSelection: false,
emulateScroll: false,
onUpdate: (data)=> {
content.style.transform = `translate(
${-data.position.x}px,
${-data.position.y}px
)`
// and also metrics: data.viewport['width'|'height'] and data.cotent['width'|'height']
}
})
// methods example:
sb.updateMetrics()
sb.setPosition({
x: 100,
y: 100
})
sb.destroy()
星河码客

发现和分享优质开源项目,传承互联网精神,为开发者服务。

关于本站

联系我们

微信/广告合作:ITcloub (备注星河码客)

免责声明:本站资源版权归原作者所有,仅供学习与交流。如有侵权,请通过「关于我们 - 侵权投诉」联系删除。

Powered by Nuxt · Deployed on Cloudflare