Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/usablica/kissui.scrollanim
CSS3 scroll animation library
https://github.com/usablica/kissui.scrollanim
animation animations-scrollanim css3 javascript viewport
Last synced: 5 days ago
JSON representation
CSS3 scroll animation library
- Host: GitHub
- URL: https://github.com/usablica/kissui.scrollanim
- Owner: usablica
- License: mit
- Created: 2016-07-30T12:55:54.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-03-25T12:44:20.000Z (almost 8 years ago)
- Last Synced: 2025-01-12T13:05:34.252Z (12 days ago)
- Topics: animation, animations-scrollanim, css3, javascript, viewport
- Language: CSS
- Homepage: http://scrollanim.kissui.io/
- Size: 65.4 KB
- Stars: 1,424
- Watchers: 44
- Forks: 130
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kissui.scrollanim
CSS3 scroll animation libraryThis library is a part of Kissui project.
# Install
## Bower
You can use bower to install the package:
```
bower install kissui.scrollanim
```## CDN
You can use **cdnjs**: https://cdnjs.com/libraries/kissui.scrollanim
## Manually
You can also download and include files manually from the latest [releases](https://github.com/usablica/kissui.scrollanim/releases).# Getting Started
This projects doesn't have any dependecies. All you need to do is to include the `scrollanim.js` and `scrollanim.css` in your page.
> Please note that you don't need jQuery, Angular.js, React, Whatever.
Write your first awesome scroll animation:
```html
Show this with fade-in
```Simple, isn't it?
Need more help? have a look at `/example` folder in the project OR http://scrollanim.kissui.io
# Adding animations
You can add animations using `data-kui-...` attributes **or** programmatiaclly using the `kissuiScrollAnim.add` method. Read following sections for more details.
## `data-kui` attributes
Currently we have two attributes to define the options:
- `data-kui-anim`: Mandatory. Animation name. see [Animations](#animations) section.
- `data-kui-event`: Option to define the event to trigger. see [Events](#events) section. Default is `in`.Example:
```html
```## Programmatically (JSON)
Also, you can use the `kissuiScrollAnim.add` method to add the animations.
Example:
```javascript
kissuiScrollAnim.add(element, {
'in': 'fadeIn'
});
```# Options
There are some options to define the default values in Scrollanim.
- `triggerOnInit`: Trigger the events on module init (automatically after page load)?. Default is `true`.
- `attributePrefix`: Prefix for all `data-...` attributes. Default is `data-kui-`.
- `animAttribute`: Name of animation attribute. Default is `anim`
- `eventAttribute`: Event attribute name. Default is `event`
- `defaultEvent`: Default event to trigger when `data-kui-event` is not provided. Default is `in`
- `autoReset`: Reset the animation event after element is out of the viewport?. Defualt is `true`To alter event you can use `setOption` or `setOptions` methods:
```javascript
kissuiScrollAnim.setOption('autoReset', false)
```or
```javascript
kissuiScrollAnim.setOptions({
'autoReset': false,
'triggerOnInit': false
})
```# Events
Scrollanim uses [`kissui.position`](https://github.com/usablica/kissui.position) to manage and track elements. Please note that `kissui.position` is a builtin dependency and you don't need to include anything in your page.
`Kissui.position` supports these events:
- `in` - when element is in the viewport
- `out` - when element is not in the viewport
- `middle` - center aligned element (vertically)
- `center` - center aligned element (horizontally)
- `top` - element at the top of the page
- `bottom` - element at the bottom of the page
- `left` - element at the left side of the page
- `right` - element at the right side of the pageAlso, it is possible to use a compond of events together, e.g. `center middle`, `in right` or `out left`. Please check out [`kissui.position`](https://github.com/usablica/kissui.position) for more information.
It is possible to use both `data-kui-anim` attribute and `kissuiScrollAnim.add(element, event)` to bind an element and reveal it after scrolling but please note that `data-kui-anim` attribute uses `in` event of `kissui.position` by default.
An example of adding an element using the API:
```javascript
kissuiScrollAnim.add(element, {
'in': 'fadeIn'
});
```Or
```javascript
kissuiScrollAnim.add(element, {
'center middle': 'fadeIn'
});
```Or
```javascript
kissuiScrollAnim.add(element, {
'center middle': 'fadeIn',
'out': 'fadeOut'
});
```Super cool.
# Animations
Scrollanim uses Animate.css as a builtin dependency to provide stunnishing animations.
Here is a list of supported animations:
* `bounce`
* `flash`
* `pulse`
* `rubberBand`
* `shake`
* `headShake`
* `swing`
* `tada`
* `wobble`
* `jello`
* `bounceIn`
* `bounceInDown`
* `bounceInLeft`
* `bounceInRight`
* `bounceInUp`
* `bounceOut`
* `bounceOutDown`
* `bounceOutLeft`
* `bounceOutRight`
* `bounceOutUp`
* `fadeIn`
* `fadeInDown`
* `fadeInDownBig`
* `fadeInLeft`
* `fadeInLeftBig`
* `fadeInRight`
* `fadeInRightBig`
* `fadeInUp`
* `fadeInUpBig`
* `fadeOut`
* `fadeOutDown`
* `fadeOutDownBig`
* `fadeOutLeft`
* `fadeOutLeftBig`
* `fadeOutRight`
* `fadeOutRightBig`
* `fadeOutUp`
* `fadeOutUpBig`
* `flipInX`
* `flipInY`
* `flipOutX`
* `flipOutY`
* `lightSpeedIn`
* `lightSpeedOut`
* `rotateIn`
* `rotateInDownLeft`
* `rotateInDownRight`
* `rotateInUpLeft`
* `rotateInUpRight`
* `rotateOut`
* `rotateOutDownLeft`
* `rotateOutDownRight`
* `rotateOutUpLeft`
* `rotateOutUpRight`
* `hinge`
* `rollIn`
* `rollOut`
* `zoomIn`
* `zoomInDown`
* `zoomInLeft`
* `zoomInRight`
* `zoomInUp`
* `zoomOut`
* `zoomOutDown`
* `zoomOutLeft`
* `zoomOutRight`
* `zoomOutUp`
* `slideInDown`
* `slideInLeft`
* `slideInRight`
* `slideInUp`
* `slideOutDown`
* `slideOutLeft`
* `slideOutRight`
* `slideOutUp`
We always keep an up-to-date version on Animate.css.
# Author
Afshin MehrabaniThanks to Daniel Eden for making [animate.css](https://github.com/daneden/animate.css)
# License
MIT