Scrolly: fast vanilla JS scrollbar plugin
Aim is a fast + good looking scrollbar with zero dependencies, small size & major browsers support.
So, the Browser Support is same as for MutationObserver
, works in all modern browsers for Desktop and Mobile.
Install, via Bower or NPM
bower install scrolly
npm install scrolly
Features & Usage
- Small (~6KB minified), fast, vanilla JS (zero dependencies)
- Nested scrollbars
- Touch support
- jQuery/Zepto/jBone plugin
- React.js Component
- Infinite scroll (top/bottom edge reach) callbacks
var ids = scrolly.bar(query|node|string, params);
var id = scrolly.barNode(node, params);
scrolly.update(id);
scrolly.updateAll();
scrolly.dispose(id);
scrolly.disposeAll();
React Component
See example usage: gulp watch
and open /react. Or just look at public/react/index.html
in this repo.
<Scrolly params={ params }>
<h1>Some test contents here</h1>
<p>Contents to be scrolled...</p>
</Scrolly>
jQuery/Zepto/jBone Plugin flavour
$('.selector').scrolly();
$('.selector').scrolly('update');
$('.selector').scrolly('dispose');
Demo
Just open public/index.html
, or check the Live demo. For React Component demo check public/react/index.html
or scrolly/react.
Details
Data: DOM elements
data LESS:
{
wrap .scrolly
area .area
bar .scrolly + .bar
thumb .thumb
}
Data: numbers
data.wrapRatio
: float 0..1
. Calculated as wrapSize / areaSize
. When === 1
no scrollbar is shown.
Setup
- Clone this repo.
- Install Node.js. Then Gulp:
npm install -g gulp
. - Terminal, from project directory:
- Dev dependencies:
npm install
. gulp -T
to see all available stuff.gulp watch
to run a local dev server, open in on localhost:3001.gulp build-all
to clean & build everything.