Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mickaelchanrion/rolly

Custom scroll with inertia, smooth parallax and scenes manager
https://github.com/mickaelchanrion/rolly

animation parallax rolly scene scroll scrollto smooth-scrolling

Last synced: 5 days ago
JSON representation

Custom scroll with inertia, smooth parallax and scenes manager

Awesome Lists containing this project

README

        





rolly.js




Custom scroll with inertia, smooth parallax and scenes manager.




Version


MIT License

## What is rolly.js?

rolly.js is a library written in javascript for building pages that moves smoothly.

This library offers 3 main features:

- change the behavior of the default scroll for a smoother effect
- quickly and flexibly add a customizable parallax effect to any element on a page
- add any behavior to your scenes bound to the scroll state (custom transforms, seek animations…)

Checkout the [demo](https://rolly.maj.digital/)!

## Documentation

The documentation is available here: [https://mickaelchanrion.github.io/rolly/](https://mickaelchanrion.github.io/rolly/)

## Getting started

Click to expand

### Download rolly

```bash
$ npm install rolly.js
```

Or add it as a script:

```html

```

### Setup the markup

Create your scenes:

```html



[data-scene] {
max-width: 800px;
padding: 10vh 50px;
margin: 10vh auto;
font-family: sans-serif;
font-size: 100px;
color: #fff;
text-align: center;
background: linear-gradient(
to top,
rgb(252, 92, 125),
rgb(106, 130, 251)
);
border-radius: 5px;
}

[data-scene]:first-child {
background: linear-gradient(
to bottom,
rgb(168, 192, 255),
rgb(63, 43, 150)
);
}

[data-scene]:last-child {
margin-bottom: 50vh;
}


rolly.js

provides…

some delicious…

very delicious…

parallax effects ❤️

```

### Import the CSS of rolly

Import the CSS of rolly: `node_modules/rolly.js/css/style.css`

Or from unpkg: `https://unpkg.com/rolly.js@/css/style.css`

### Initialize rolly

```js
import rolly from 'rolly.js';

const r = rolly({
view: document.querySelector('.app'),
native: true,
// other options
});
r.init();
```

## Examples

You will find some examples [here](https://codepen.io/collection/AyEJzY/).

## Roadmap

- [x] Create documentation
- [x] Create some examples
- [ ] Fix the scrollTo function
- [ ] Test and fix [issues](https://mickaelchanrion.github.io/rolly/api/#vertical) when `vertical` options is set to `false`
- [ ] Change the way the easing is computed. Probably with a clean Lerp function
- [ ] Implement different easing for each scene (it would add a nice organic effect 🤩)
- [Need a feature?](https://github.com/mickaelchanrion/rolly/issues/new?labels=feature+request)

## Contributors

- [Mickael Chanrion](https://github.com/mickaelchanrion/)
- [MAJ digital](https://github.com/majdigital/)