CSS3 scroll animation library
This library is a part of Kissui project.
You can use bower to install the package:
bower install kissui.scrollanim
You can use cdnjs: https://cdnjs.com/libraries/kissui.scrollanim
You can also download and include files manually from the latest releases.
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:
<p data-kui-anim="fadeIn">Show this with fade-in</p>
Simple, isn't it?
Need more help? have a look at /example
folder in the project OR http://scrollanim.kissui.io
You can add animations using data-kui-...
attributes or programmatiaclly using the kissuiScrollAnim.add
method. Read following sections for more details.
Currently we have two attributes to define the options:
data-kui-anim
: Mandatory. Animation name. see Animations section.data-kui-event
: Option to define the event to trigger. see Events section. Default isin
.
Example:
<div data-kui-anim="fadeIn" data-kui-event="top">
Also, you can use the kissuiScrollAnim.add
method to add the animations.
Example:
kissuiScrollAnim.add(element, {
'in': 'fadeIn'
});
There are some options to define the default values in Scrollanim.
triggerOnInit
: Trigger the events on module init (automatically after page load)?. Default istrue
.attributePrefix
: Prefix for alldata-...
attributes. Default isdata-kui-
.animAttribute
: Name of animation attribute. Default isanim
eventAttribute
: Event attribute name. Default isevent
defaultEvent
: Default event to trigger whendata-kui-event
is not provided. Default isin
autoReset
: Reset the animation event after element is out of the viewport?. Defualt istrue
To alter event you can use setOption
or setOptions
methods:
kissuiScrollAnim.setOption('autoReset', false)
or
kissuiScrollAnim.setOptions({
'autoReset': false,
'triggerOnInit': false
})
Scrollanim uses 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 viewportout
- when element is not in the viewportmiddle
- center aligned element (vertically)center
- center aligned element (horizontally)top
- element at the top of the pagebottom
- element at the bottom of the pageleft
- element at the left side of the pageright
- element at the right side of the page
Also, it is possible to use a compond of events together, e.g. center middle
, in right
or out left
. Please check out 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:
kissuiScrollAnim.add(element, {
'in': 'fadeIn'
});
Or
kissuiScrollAnim.add(element, {
'center middle': 'fadeIn'
});
Or
kissuiScrollAnim.add(element, {
'center middle': 'fadeIn',
'out': 'fadeOut'
});
Super cool.
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.
Afshin Mehrabani
Thanks to Daniel Eden for making animate.css
MIT