HeroMagic.js
A jQuery visual effects plugin for fades, slides, and transitions.
Requires jQuery, a child-like sense of wonder, and your good looks.
Â
Magic Attributes for Intro Animations
Appear and move intro animated effects are applied using data-
attributes. They look like this:
<p data-appear="[duration], [easing], [delay]">...</p> <a data-move="[x],[y], [duration], [easing], [delay]">...</a>
...or in a more real example:
<!-- wait 100ms, then fade in over 300ms using the `ease-in-out` easing --> <h1 data-appear="300ms, ease-in-out, 100ms">One</h1> <!-- wait 500ms, then move up 20px over 300ms using the `ease-in-out` easing --> <h2 data-move="-20px, 0, 300ms, ease-in-out, 500ms">Two</h2>
Â
Magic Classes for Scrolling
The four effects fade in, fade out, scroll in, and scroll out are controlled by classes.
Class | Effect |
---|---|
.hm-fade-in | As this element moves away from the bottom of the viewport, it will fade in according to the scrollInDistance option |
.hm-fade-out | As this element approaches the top of the viewport, it will fade out according to the scrollOutDistance option |
.hm-scroll-in | As this element moves away from the bottom of the viewport, it will decelerate in according to the scrollInDistance option |
.hm-scroll-out | As this element approaches the top of the viewport, it will accelerate out according to the scrollOutDistance option |
Note: that all four of these classes are affected by the scrollCompressor
option for configuring how aggressively the elements accelerate / decelerate.
Â
Options
Option | Type | Default | Description |
---|---|---|---|
addStyles | bool | true | When true , HeroMagic will inject styles into the <head/> of the document. It is recommended that you include jquery.heromagic.css in your styles and set this option to false for better visual performance. |
autoStart | boolean | true | If set to true , the appear and move animations will begin on the window.load event. If this is set to false you will need to programmatically invoke the animate() method to start the show. |
debugScrollPoints | bool | false | If set to true , visual indicators of the scroll points used for .hm-fade-in , .hm-fade-out , .hm-scroll-in , and .hm-scroll-out will be shown. |
defaults | object | (see below) | An object comprising of default options for _appear_s and _move_s. |
defaults.appearDuration | string | "300ms" | The time it takes for an .appear class to appear. |
defaults.appearEasing | string | "ease-in-out" | The easing function used for .appear s. |
defaults.appearDelay | string | "0ms" | The delay before appearing. |
defaults.moveX | string | "0" | The movement of this element on the X axis. |
defaults.moveY | string | "-20px" | The movement of this element on the Y axis. |
defaults.moveDuration | string | "300ms" | The time it takes for a .move class to move. |
defaults.moveEasing | string | "ease-in-out" | The easing function used for .move s. |
defaults.moveDelay | string | "0ms" | The delay before moving. |
positionOverrides | bool | true | A setting which will if true will change the display property of any element which HeroMagic touches. This will change a position value of static |fixed |initial |inherit to relative (position: absolute will remain unchanged). |
scrollCompressor | float | 0.2 | Controls how aggressively the scroll-in|scroll-out|fade-in|fade-out is calculated. Lower numbers go slower, numbers closer to 1.0 start to become seizure-inducing. |
scrollInDistance | int | 80 | The distance from the top of the viewport where scrolls + fades start to take effect. |
scrollOutDistance | int | 80 | The distance from the bottom of the viewport where scrolls + fades start to take effect. |