auto-animate docs
This commit is contained in:
parent
f958820b5b
commit
beb2ad6a92
37
README.md
37
README.md
|
@ -336,11 +336,10 @@ Reveal.initialize({
|
||||||
// used to dictate which elements we can animate between.
|
// used to dictate which elements we can animate between.
|
||||||
autoAnimateMatcher: null,
|
autoAnimateMatcher: null,
|
||||||
|
|
||||||
// Default settings for our auto-animate transitions, can be
|
// Default settings for or auto-animate transitions, can be
|
||||||
// overridden per-slide or per-element via data arguments
|
// overridden per-slide or per-element via data arguments
|
||||||
autoAnimateEasing: 'ease',
|
autoAnimateEasing: 'ease',
|
||||||
autoAnimateDuration: 1.0,
|
autoAnimateDuration: 1.0,
|
||||||
autoAnimateUnmatched: true,
|
|
||||||
|
|
||||||
// CSS properties that can be auto-animated. Position & scale
|
// CSS properties that can be auto-animated. Position & scale
|
||||||
// is matched separately so there's no need to include styles
|
// is matched separately so there's no need to include styles
|
||||||
|
@ -578,6 +577,8 @@ Reveal.configure({
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Auto-Animate
|
||||||
|
|
||||||
reveal.js can automatically animate elements across slides. All you need to do is add `data-auto-animate` to two adjacent slide `<section>` elements and Auto-Animate will animate all matching elements between the two.
|
reveal.js can automatically animate elements across slides. All you need to do is add `data-auto-animate` to two adjacent slide `<section>` elements and Auto-Animate will animate all matching elements between the two.
|
||||||
|
|
||||||
Here's a simple example to give you a better idea of how it can be used. The resulting animation will be the word "Magic" sliding 100px downwards.
|
Here's a simple example to give you a better idea of how it can be used. The resulting animation will be the word "Magic" sliding 100px downwards.
|
||||||
|
@ -590,24 +591,35 @@ Here's a simple example to give you a better idea of how it can be used. The res
|
||||||
</section>
|
</section>
|
||||||
```
|
```
|
||||||
|
|
||||||
This example uses the "top" property to move the element but internally reveal.js will use a CSS transform to ensure smooth movement. This same approach to animation works with most animatable CSS properties meaning you can transition things like `position`, `font-size`, `line-height`, `color`, `background-color` and `padding`.
|
This example uses the `top` property to move the element but internally reveal.js will use a CSS transform to ensure smooth movement. This same approach to animation works with most animatable CSS properties meaning you can transition things like `position`, `font-size`, `line-height`, `color`, `background-color` and `padding`.
|
||||||
|
|
||||||
#### How Elements are Matched
|
#### How Elements are Matched
|
||||||
When you navigate between two auto-animated slides we'll do our best to automatically find matching elements between the two slides. For text, we consider it a match if both the text contents and node type are identical. For images, videos and iframes we compare the `src` attribute. We also take into account the order in which the element appears in the DOM.
|
When you navigate between two auto-animated slides we'll do our best to automatically find matching elements between the two slides. For text, we consider it a match if both the text contents and node type are identical. For images, videos and iframes we compare the `src` attribute. We also take into account the order in which the element appears in the DOM.
|
||||||
|
|
||||||
In situations where automatic matching is not feasible you can give the objects that you want to animate between a matching `data-id` attribute. We prioritize matching `data-id` values above our automatic matching.
|
In situations where automatic matching is not feasible you can give the objects that you want to animate between a matching `data-id` attribute. We prioritize matching `data-id` values above our automatic matching.
|
||||||
|
|
||||||
#### Slide & Element Specific Settings
|
Here's an example where we've given both blocks a matching ID since automatic matching has no content to go on.
|
||||||
You can override specific animation properties such as easing and duration either per-slide or individually for each animated element. The following configuration attributes are available:
|
|
||||||
|
|
||||||
| Attribute | Default | Description
|
```html
|
||||||
| :------------------------------- | :--------- | :----------
|
<section data-auto-animate>
|
||||||
|
<div data-id="box" style="padding: 20px; background: salmon;"></div>
|
||||||
|
</section>
|
||||||
|
<section data-auto-animate>
|
||||||
|
<div data-id="box" style="padding: 20px; background: blue;"></div>
|
||||||
|
</section>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Animation Settings
|
||||||
|
You can override specific animation settings such as easing and duration either for the whole presentation, per-slide or individually for each animated element. The following configuration attributes can be used to change the settings for a specific slide or element:
|
||||||
|
|
||||||
|
| Attribute | Default | Description
|
||||||
|
| :------------------------------- | ---------: | :----------
|
||||||
| data-auto-animate-easing | ease | A CSS [easing function](https://developer.mozilla.org/en-US/docs/Web/CSS/easing-function).
|
| data-auto-animate-easing | ease | A CSS [easing function](https://developer.mozilla.org/en-US/docs/Web/CSS/easing-function).
|
||||||
| data-auto-animate-unmatched | true | Determines whether elements with no matching auto-animate target should fade in. Set to false to make them appear instantly.
|
| data-auto-animate-unmatched | true | Determines whether elements with no matching auto-animate target should fade in. Set to false to make them appear instantly.
|
||||||
| data-auto-animate-duration | 1.0 | Animation duration in seconds.
|
| data-auto-animate-duration | 1.0 | Animation duration in seconds.
|
||||||
| data-auto-animate-delay | 0 | Animation delay in seconds (can only be set for specific elements, not at the slide level).
|
| data-auto-animate-delay | 0 | Animation delay in seconds (can only be set for specific elements, not at the slide level).
|
||||||
|
|
||||||
If you'd like to change the defaults for the whole deck, please use the reveal.js config options:
|
If you'd like to change the defaults for the whole deck, use the following config options:
|
||||||
```javascript
|
```javascript
|
||||||
Reveal.initialize({
|
Reveal.initialize({
|
||||||
autoAnimateEasing: 'ease-out',
|
autoAnimateEasing: 'ease-out',
|
||||||
|
@ -616,8 +628,13 @@ Reveal.initialize({
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Custom Element Matcher
|
#### Events
|
||||||
TBD. How to implement your own element matcher.
|
Each time a presentation navigates between two auto-animated slides it dispatches the `autoanimate` event.
|
||||||
|
```javascript
|
||||||
|
Reveal.addEventListener( 'autoanimate', function( event ) {
|
||||||
|
// event.fromSlide, event.toSlide
|
||||||
|
} );
|
||||||
|
```
|
||||||
|
|
||||||
### Vertical Slide Navigation
|
### Vertical Slide Navigation
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue