animate.css/README.md

271 lines
9.6 KiB
Markdown
Raw Normal View History

# Animate.css [![GitHub release](https://img.shields.io/github/release/daneden/animate.css.svg)](https://github.com/daneden/animate.css/releases) [![CDNJS](https://img.shields.io/cdnjs/v/animate.css.svg)](https://cdnjs.com/libraries/animate.css) [![Build Status](https://travis-ci.com/daneden/animate.css.svg?branch=master)](https://travis-ci.com/daneden/animate.css) [![devDependencies Status](https://david-dm.org/daneden/animate.css/dev-status.svg)](https://david-dm.org/daneden/animate.css?type=dev) [![chat](https://img.shields.io/badge/chat-gitter-green.svg)](https://gitter.im/animate-css/Lobby) [![npm version](https://badge.fury.io/js/animate.css.svg)](https://www.npmjs.com/package/animate.css)
2017-11-16 00:20:46 +01:00
_Just-add-water CSS animation_
2011-12-14 11:14:22 +01:00
`animate.css` is a bunch of cool, fun, and cross-browser animations for you to use in your projects. Great for emphasis, home pages, sliders, and general just-add-water-awesomeness.
## Installation
To install via Bower, simply do the following:
```bash
$ bower install animate.css --save
```
2017-11-16 00:20:46 +01:00
2016-06-08 11:00:41 +02:00
or you can install via npm:
```bash
$ npm install animate.css --save
```
2017-07-09 18:28:40 +02:00
## Basic Usage
2017-11-16 00:20:46 +01:00
1. Include the stylesheet on your document's `<head>`
2014-09-08 17:16:31 +02:00
2017-11-16 00:20:46 +01:00
```html
<head>
<link rel="stylesheet" href="animate.min.css">
</head>
```
Instead of installing you may use the remote version (hosted by [CDNJS](https://cdnjs.com/libraries/animate.css)):
```html
<head>
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/animate.css@3.5.2/animate.min.css">
<!-- or -->
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css">
</head>
```
You may [generate a SRI hash](https://www.srihash.org/) of that particular version and then use it to ensure the file's integrity; also you can make anonymous requests to CDN by setting the corresponding [`crossorigin`](https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes) attribute:
```html
<head>
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/animate.css@3.5.2/animate.min.css"
integrity="sha384-OHBBOqpYHNsIqQy8hL1U+8OXf9hH6QRxi0+EODezv82DfnZoV7qoHAZDwMwEJvSw"
crossorigin="anonymous">
<!-- or -->
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css"
integrity="sha384-OHBBOqpYHNsIqQy8hL1U+8OXf9hH6QRxi0+EODezv82DfnZoV7qoHAZDwMwEJvSw"
crossorigin="anonymous">
</head>
```
2. Add the class `animated` to the element you want to animate. You may also want to include the class `infinite` for an infinite loop.
2014-09-08 17:16:31 +02:00
3. Finally you need to add one of the following classes:
2014-09-08 17:16:31 +02:00
2017-11-16 00:20:46 +01:00
| Class Name | | | |
| ----------------- | ------------------ | ------------------- | -------------------- |
| `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` | `jackInTheBox` |
| `rollIn` | `rollOut` | `zoomIn` | `zoomInDown` |
| `zoomInLeft` | `zoomInRight` | `zoomInUp` | `zoomOut` |
| `zoomOutDown` | `zoomOutLeft` | `zoomOutRight` | `zoomOutUp` |
| `slideInDown` | `slideInLeft` | `slideInRight` | `slideInUp` |
| `slideOutDown` | `slideOutLeft` | `slideOutRight` | `slideOutUp` |
| `heartBeat` |
2014-09-08 17:16:31 +02:00
Full example:
2017-11-16 00:20:46 +01:00
2014-09-08 17:16:31 +02:00
```html
<h1 class="animated infinite bounce delay-2s">Example</h1>
2014-09-08 17:16:31 +02:00
```
[Check out all the animations here!](https://daneden.github.io/animate.css/)
2017-07-09 18:29:16 +02:00
## Usage
2017-11-16 00:20:46 +01:00
2011-12-14 11:14:22 +01:00
To use animate.css in your website, simply drop the stylesheet into your document's `<head>`, and add the class `animated` to an element, along with any of the animation names. That's it! You've got a CSS animated element. Super!
```html
<head>
<link rel="stylesheet" href="animate.min.css">
</head>
```
2017-11-16 00:20:46 +01:00
2016-08-29 04:17:30 +02:00
or use the version hosted by [CDNJS](https://cdnjs.com/libraries/animate.css)
2017-11-16 00:20:46 +01:00
2016-04-30 03:52:10 +02:00
```html
<head>
2016-08-29 04:17:30 +02:00
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css">
2016-04-30 03:52:10 +02:00
</head>
```
2011-12-14 11:14:22 +01:00
You can do a whole bunch of other stuff with animate.css when you combine it with jQuery or add your own CSS rules. Dynamically add animations using jQuery with ease:
```javascript
2011-12-14 11:14:22 +01:00
$('#yourElement').addClass('animated bounceOutLeft');
```
You can also detect when an animation ends:
2014-02-25 16:48:53 +01:00
<!--
Before you make changes to this file, you should know that $('#yourElement').one() is *NOT A TYPO*
http://api.jquery.com/one/
-->
```javascript
2018-01-29 17:53:49 +01:00
// See https://github.com/daneden/animate.css/issues/644
var animationEnd = (function(el) {
var animations = {
animation: 'animationend',
OAnimation: 'oAnimationEnd',
MozAnimation: 'mozAnimationEnd',
WebkitAnimation: 'webkitAnimationEnd',
};
for (var t in animations) {
if (el.style[t] !== undefined) {
return animations[t];
}
}
})(document.createElement('div'));
$('#yourElement').one(animationEnd, doSomething);
```
2016-06-08 11:00:41 +02:00
[View a video tutorial](https://www.youtube.com/watch?v=CBQGl6zokMs) on how to use Animate.css with jQuery here.
2017-11-16 00:20:46 +01:00
**Note:** `jQuery.one()` is used when you want to execute the event handler at most _once_. More information [here](http://api.jquery.com/one/).
You can also extend jQuery to add a function that does it all for you:
```javascript
$.fn.extend({
2017-11-16 00:20:46 +01:00
animateCss: function(animationName, callback) {
2018-01-29 17:53:49 +01:00
var animationEnd = (function(el) {
var animations = {
animation: 'animationend',
OAnimation: 'oAnimationEnd',
MozAnimation: 'mozAnimationEnd',
WebkitAnimation: 'webkitAnimationEnd',
};
for (var t in animations) {
if (el.style[t] !== undefined) {
return animations[t];
}
}
})(document.createElement('div'));
2017-11-16 00:20:46 +01:00
this.addClass('animated ' + animationName).one(animationEnd, function() {
$(this).removeClass('animated ' + animationName);
2018-01-29 17:53:49 +01:00
if (typeof callback === 'function') callback();
2017-11-16 00:20:46 +01:00
});
2018-01-29 17:53:49 +01:00
2017-11-16 00:20:46 +01:00
return this;
2017-12-10 14:18:20 +01:00
},
});
```
And use it like this:
```javascript
$('#yourElement').animateCss('bounce');
2017-11-16 00:20:46 +01:00
or;
$('#yourElement').animateCss('bounce', function() {
// Do somthing after animation
});
```
You can change the duration of your animations, add a delay or change the number of times that it plays:
2011-12-14 11:14:22 +01:00
2012-09-13 17:43:41 +02:00
```css
2011-12-21 09:41:10 +01:00
#yourElement {
-vendor-animation-duration: 3s;
-vendor-animation-delay: 2s;
-vendor-animation-iteration-count: infinite;
2011-12-14 11:14:22 +01:00
}
```
2017-11-16 00:20:46 +01:00
_Note: be sure to replace "vendor" in the CSS with the applicable vendor prefixes (webkit, moz, etc)_
2011-12-14 11:14:22 +01:00
## Define _Delay_ and _Speed_ using Class
#### Delay Class
You can also add delays directly on the element's class attribute, just like this:
```html
<div class="animated bounce delay-2s">Example</div>
```
| Class Name | Delay Time |
| ---------- | ---------- |
| `delay-2s` | `2s` |
| `delay-3s` | `3s` |
| `delay-4s` | `4s` |
| `delay-5s` | `5s` |
> _**Note**: The default delays are from 1 second to 5 seconds only. If you want to add customized delays, you can add it directly to your css_
#### Slow, Slower, Fast, and Faster Class
You can control the speed of the animation by adding these classes, as a sample below:
```html
<div class="animated bounce faster">Example</div>
```
| Class Name | Speed Time |
| ---------- | ---------- |
| `slow` | `2s` |
| `slower` | `3s` |
| `fast` | `800ms` |
| `faster` | `500ms` |
> _**Note**: The default speed is `1s` which is you don't need to put any class. If you want to add a custom duration, you can add it directly to your css instead_
## Custom Builds
2017-11-16 00:20:46 +01:00
2015-12-19 12:59:57 +01:00
Animate.css is powered by [gulp.js](http://gulpjs.com/), and you can create custom builds pretty easily. First of all, youll need Gulp and all other dependencies:
2014-02-04 08:51:08 +01:00
```sh
$ cd path/to/animate.css/
$ sudo npm install
```
2016-03-22 14:27:37 +01:00
Next, run `gulp` to compile your custom builds. For example, if you want only some of the “attention seekers”, simply edit the `animate-config.json` file to select only the animations you want to use.
```javascript
"attention_seekers": {
"bounce": true,
"flash": false,
"pulse": false,
"shake": true,
"headShake": true,
"swing": true,
"tada": true,
"wobble": true,
"jello":true
}
```
## License
2017-11-16 00:20:46 +01:00
Animate.css is licensed under the MIT license. (http://opensource.org/licenses/MIT)
## Contributing
2017-11-16 00:20:46 +01:00
2014-02-04 08:51:08 +01:00
Pull requests are the way to go here. I apologise in advance for the slow action on pull requests and issues. I only have two rules for submitting a pull request: match the naming convention (camelCase, categorised [fades, bounces, etc]) and let us see a demo of submitted animations in a [pen](http://codepen.io). That last one is important.