Top Related Projects
JavaScript animation engine
🍿 A cross-browser library of CSS animations. As easy to use as an easy thing.
Animate on scroll library
CSS3 Animations with special effects
A collection of CSS3 powered hover effects to be applied to links, buttons, logos, SVG, featured images and so on. Easily apply to your own elements, modify or just use for inspiration. Available in CSS, Sass, and LESS.
Tasty CSS-animated Hamburgers
Quick Overview
WOW is a lightweight JavaScript library that reveals content as users scroll down a page, creating engaging animations. It's designed to be simple to use and customizable, allowing developers to easily add scroll-based animations to their websites without complex coding.
Pros
- Easy to implement with minimal setup required
- Lightweight and performant, with no dependencies
- Highly customizable with various animation options
- Works well across different browsers and devices
Cons
- Limited to scroll-based animations only
- May not be suitable for complex, multi-step animations
- Requires JavaScript to function, which may not be ideal for all use cases
- Documentation could be more comprehensive for advanced usage
Code Examples
- Basic usage:
new WOW().init();
This initializes WOW with default settings, animating elements with the "wow" class as they come into view.
- Custom animation duration:
<div class="wow" data-wow-duration="2s">
Animated content
</div>
This sets a custom animation duration of 2 seconds for the specific element.
- Offset and delay:
<div class="wow" data-wow-offset="200" data-wow-delay="1s">
Delayed animation
</div>
This example sets the animation to trigger when the element is 200 pixels from the bottom of the viewport and adds a 1-second delay before starting.
Getting Started
- Include the WOW.js library in your HTML file:
<link rel="stylesheet" href="css/animate.css">
<script src="js/wow.min.js"></script>
- Add the "wow" class to elements you want to animate:
<div class="wow fadeInUp">
This content will fade in and up as you scroll
</div>
- Initialize WOW in your JavaScript:
document.addEventListener('DOMContentLoaded', function() {
new WOW().init();
});
- Customize animations using data attributes or JavaScript options as needed.
Competitor Comparisons
JavaScript animation engine
Pros of anime
- More versatile and feature-rich animation library
- Supports a wider range of animation types and properties
- Actively maintained with regular updates and improvements
Cons of anime
- Larger file size and potentially higher performance overhead
- Steeper learning curve due to more complex API and options
Code Comparison
WOW:
new WOW().init();
<div class="wow fadeInUp" data-wow-duration="2s" data-wow-delay="1s">
Animated content
</div>
anime:
anime({
targets: '.element',
translateX: 250,
rotate: '1turn',
duration: 800,
easing: 'easeInOutQuad'
});
Summary
anime offers more advanced animation capabilities and is actively maintained, making it suitable for complex projects. However, it may be overkill for simple scroll-based animations. WOW is simpler to use and lighter-weight but has limited functionality and is no longer actively developed. The choice between the two depends on the specific project requirements and the desired level of animation complexity.
🍿 A cross-browser library of CSS animations. As easy to use as an easy thing.
Pros of Animate.css
- Larger collection of pre-built animations (85+)
- Standalone CSS library, no JavaScript required
- Easier to implement for simple animation needs
Cons of Animate.css
- Less control over animation triggers
- No built-in scroll-based animation functionality
- Potentially larger file size if not optimized
Code Comparison
WOW.js (JavaScript):
new WOW().init();
<div class="wow fadeInUp" data-wow-duration="2s" data-wow-delay="1s">
Animated content
</div>
Animate.css (HTML/CSS):
<link rel="stylesheet" href="animate.min.css">
<div class="animate__animated animate__fadeInUp">
Animated content
</div>
Summary
Animate.css is a pure CSS animation library offering a wide range of pre-built animations, making it easy to implement basic animations without JavaScript. It's ideal for simple animation needs and quick implementation.
WOW, on the other hand, is a JavaScript library that works in conjunction with Animate.css to provide scroll-based animations. It offers more control over animation triggers and timing but requires additional JavaScript implementation.
The choice between the two depends on the project's specific requirements, with Animate.css being simpler for basic needs and WOW providing more advanced functionality for scroll-based animations.
Animate on scroll library
Pros of AOS
- More customizable with a wider range of animation options
- Better performance due to CSS-based animations
- Actively maintained with regular updates and bug fixes
Cons of AOS
- Slightly more complex setup and configuration
- Larger file size compared to WOW.js
- May require more JavaScript knowledge for advanced usage
Code Comparison
WOW.js:
new WOW().init();
<div class="wow fadeIn">
Content to animate
</div>
AOS:
AOS.init();
<div data-aos="fade-in">
Content to animate
</div>
Both libraries use similar approaches for initializing and applying animations to elements. However, AOS offers more customization options through data attributes and JavaScript configuration.
AOS provides a wider range of animation effects and allows for more fine-tuned control over timing, easing, and other animation properties. It also supports custom animations and can be easily integrated with other JavaScript libraries.
WOW.js, on the other hand, is simpler to use and has a smaller footprint, making it a good choice for projects that require basic scroll-based animations without extensive customization.
CSS3 Animations with special effects
Pros of Magic
- More comprehensive animation library with a wider range of effects
- Better documentation and examples for easier implementation
- Actively maintained with regular updates and improvements
Cons of Magic
- Larger file size, potentially impacting page load times
- Steeper learning curve due to more complex API and options
- May require more configuration for simple animations
Code Comparison
WOW:
new WOW().init();
<div class="wow fadeIn">
Content to animate
</div>
Magic:
magicInit();
<div class="magictime puffIn">
Content to animate
</div>
Summary
WOW is a simpler, lightweight animation library focused on scroll-based animations, while Magic offers a more extensive set of animation options and effects. WOW is easier to implement for basic scroll animations, but Magic provides more flexibility and customization for complex animation scenarios. The choice between the two depends on the specific project requirements, desired animation complexity, and performance considerations.
A collection of CSS3 powered hover effects to be applied to links, buttons, logos, SVG, featured images and so on. Easily apply to your own elements, modify or just use for inspiration. Available in CSS, Sass, and LESS.
Pros of Hover
- More extensive collection of effects (42 vs. 12 in WOW)
- Includes both CSS transitions and animations
- Better documentation with live demos for each effect
Cons of Hover
- Larger file size due to more effects
- Some effects may be considered overly complex for simple use cases
Code Comparison
WOW:
.wow {
visibility: hidden;
}
.wow.animated {
visibility: visible;
}
Hover:
.hvr-grow {
display: inline-block;
vertical-align: middle;
transform: translateZ(0);
box-shadow: 0 0 1px rgba(0, 0, 0, 0);
backface-visibility: hidden;
-moz-osx-font-smoothing: grayscale;
transition-duration: 0.3s;
transition-property: transform;
}
WOW focuses on revealing elements as they enter the viewport, while Hover provides a variety of CSS-based hover effects. WOW's code is simpler, mainly toggling visibility, whereas Hover's code includes more properties for complex transitions and transformations.
Both libraries serve different purposes: WOW for scroll-based animations and Hover for interactive element effects. The choice between them depends on the specific needs of your project and the type of animations you want to implement.
Tasty CSS-animated Hamburgers
Pros of hamburgers
- More comprehensive and customizable with various hamburger menu animations
- Better documentation and usage examples
- Actively maintained with recent updates
Cons of hamburgers
- Larger file size due to more features and animations
- Steeper learning curve for advanced customizations
Code comparison
WOW:
.wow {
visibility: hidden;
}
hamburgers:
.hamburger {
padding: 15px 15px;
display: inline-block;
cursor: pointer;
transition-property: opacity, filter;
transition-duration: 0.15s;
transition-timing-function: linear;
}
Key differences
- WOW focuses on scroll animations, while hamburgers specializes in hamburger menu animations
- WOW uses JavaScript for animation triggering, whereas hamburgers primarily uses CSS
- hamburgers offers more customization options for its specific use case
Use cases
- WOW: Ideal for adding scroll-triggered animations to various elements on a webpage
- hamburgers: Perfect for implementing customizable hamburger menu icons and animations
Community and support
- WOW has more stars and forks on GitHub
- hamburgers has more recent updates and active maintenance
Integration
- WOW requires JavaScript and can be used with various CSS animation libraries
- hamburgers is primarily CSS-based and can be easily integrated into existing projects
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
WOW.js
Reveal CSS animation as you scroll down a page. By default, you can use it to trigger animate.css animations. But you can easily change the settings to your favorite animation library.
Advantages:
- Smaller than other JavaScript parallax plugins, like Scrollorama (they do fantastic things, but can be too heavy for simple needs)
- Super simple to install, and works with animate.css, so if you already use it, that will be very fast to setup
- Fast execution and lightweight code: the browser will like it ;-)
- You can change the settings - see below
Follow @mattdelac_ for updates as WOW evolves.
LIVE DEMO â«
Version
1.1.3
License
Commercial license
If you want to use WOW.js to develop commercial sites, themes, projects, and applications, the Commercial license is the appropriate license. With this option, your source code is kept proprietary. Purchase a WOW.js Commercial License at uplabs.com/posts/wow-js-commercial
Open source license
If you are creating an open source application under a license compatible with the GNU GPL license v3, you may use this project under the terms of the GPLv3.
Documentation
It just take seconds to install and use WOW.js! Read the documentation â«
Dependencies
Installation
- Bower
bower install wowjs
- NPM
npm install wowjs
Basic usage
In order to hide all elements when they are supposed to be hidden. (Anti Flickering)
-
CSS .wow { visibility: hidden; }
-
HTML
<section class="wow slideInLeft"></section>
<section class="wow slideInRight"></section>
- JavaScript
new WOW().init();
Advanced usage
- HTML
<section class="wow slideInLeft" data-wow-duration="2s" data-wow-delay="5s"></section>
<section class="wow slideInRight" data-wow-offset="10" data-wow-iteration="10"></section>
- JavaScript
var wow = new WOW(
{
boxClass: 'wow', // animated element css class (default is wow)
animateClass: 'animated', // animation css class (default is animated)
offset: 0, // distance to the element when triggering the animation (default is 0)
mobile: true, // trigger animations on mobile devices (default is true)
live: true, // act on asynchronously loaded content (default is true)
callback: function(box) {
// the callback is fired every time an animation is started
// the argument that is passed in is the DOM node being animated
},
scrollContainer: null // optional scroll container selector, otherwise use window
}
);
wow.init();
Asynchronous content support
In IE 10+, Chrome 18+ and Firefox 14+, animations will be automatically
triggered for any DOM nodes you add after calling wow.init()
. If you do not
like that, you can disable this by setting live
to false
.
If you want to support older browsers (e.g. IE9+), as a fallback, you can call
the wow.sync()
method after you have added new DOM elements to animate (but
live
should still be set to true
). Calling wow.sync()
has no side
effects.
Contribute
You're more than welcome to contribute to this project. Please note: your code may be used as part of a commercial product if merged. Be clear about what license applies to your patch. The MIT license or public domain unlicense are permissive, and allow integration of your patch into this project as part of a commercial product.
The library is written in CoffeeScript, please update wow.coffee
file.
We use grunt to compile and minify the library:
Install needed libraries
npm install
Get the compilation running in the background
grunt watch
Enjoy!
Bug tracker
If you find a bug, please report it here on Github!
Developer
Developed by Matt Delac, delac.io
Contributors
Thanks to everyone who has contributed to the project so far:
- Attila Oláh - @attilaolah - Github Profile
- and many others
Initiated and designed by Vincent Le Moign, @webalys
Top Related Projects
JavaScript animation engine
🍿 A cross-browser library of CSS animations. As easy to use as an easy thing.
Animate on scroll library
CSS3 Animations with special effects
A collection of CSS3 powered hover effects to be applied to links, buttons, logos, SVG, featured images and so on. Easily apply to your own elements, modify or just use for inspiration. Available in CSS, Sass, and LESS.
Tasty CSS-animated Hamburgers
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot