Convert Figma logo to code with AI

matthieua logoWOW

Reveal CSS animation as you scroll down a page

9,901
4,130
9,901
182

Top Related Projects

49,575

JavaScript animation engine

🍿 A cross-browser library of CSS animations. As easy to use as an easy thing.

26,486

Animate on scroll library

8,433

CSS3 Animations with special effects

29,203

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

  1. Basic usage:
new WOW().init();

This initializes WOW with default settings, animating elements with the "wow" class as they come into view.

  1. 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.

  1. 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

  1. Include the WOW.js library in your HTML file:
<link rel="stylesheet" href="css/animate.css">
<script src="js/wow.min.js"></script>
  1. 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>
  1. Initialize WOW in your JavaScript:
document.addEventListener('DOMContentLoaded', function() {
  new WOW().init();
});
  1. Customize animations using data attributes or JavaScript options as needed.

Competitor Comparisons

49,575

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.

26,486

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.

8,433

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.

29,203

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

WOW.js Build Status

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:

Initiated and designed by Vincent Le Moign, @webalys

NPM DownloadsLast 30 Days