jam-cloud/jam-ui/node_modules/progressbar.js/docs/api/parameters.md

116 lines
2.9 KiB
Markdown

# Easing
Easing functions [provided with *shifty* are supported](https://github.com/jeremyckahn/shifty/blob/master/src/shifty.formulas.js).
A few basic easing options:
* `'linear'`
* `'easeIn'`
* `'easeOut'`
* `'easeInOut'`
You can also provide an custom easing function.
# {custom-animations} Custom animations
See [example in demo page](https://kimmobrunfeldt.github.io/progressbar.js#example-custom-animation).
Customizing animations is possible with the help of `from`, `to` and `step` parameters.
Tweening engine changes defined values over time and calls step function for each animation's frame.
!!! note
There's a big difference between passing the `from` and `to` parameters in initialization
of progress bar compared to passing in `.animate()` call. Here's example code and illustrations to explain the difference:
**Pass in initialization**
```javascript
var bar = new ProgressBar.Line('#container', {
from: { color: '#000 '},
to: { color: '#888 '},
step: function(state, bar, attachment) {
bar.path.setAttribute('stroke', state.color);
}
});
```
![](../img/animate-init.png)
**Pass in `.animate()` call**
```javascript
var bar = new ProgressBar.Line('#container', {
step: function(state, bar, attachment) {
bar.path.setAttribute('stroke', state.color);
}
});
var opts = {
from: { color: '#000 '},
to: { color: '#888'}
};
bar.animate(0.5, opts);
```
![](../img/animate-call.png)
## `from` parameter
Object containing values which should be tweened.
These values represent the starting values of the animation. Default: `{}`.
For example
```javascript
{
// Start from thin gray line
width: 0.1,
color: '#eee'
}
```
Thanks to shifty, you can tween values in formats like `translateX(45px)`, `rgb(0,255,0)` and `#fff`.
See all supported string formats from [shifty's documentation](http://jeremyckahn.github.io/shifty/dist/doc/modules/Tweenable.token.html)
Easing defined as option for animation applies to all of the specified values.
## `to` parameter
Object containing values which should be tweened. These represent the final values after animation is done. Default: `{}`.
For example
```javascript
{
// Finish to thick black line
width: 1,
color: '#000'
}
```
*Signature must match `from`*
## `step` parameter
Function called for each animation step. Tweened values, a reference to the path or shape, and an attachment are passed as parameters. Attachment can be reference to any object you need to modify within step function. Default: `function() {}`.
!!! warning
This function is called multiple times per second.
To make sure animations run smoothly, keep it minimal.
For example
```javascript
function(state, shape, attachment) {
shape.path.setAttribute('stroke-width', state.width);
shape.path.setAttribute('stroke', state.color);
attachment.text.innerHTML = shape.value() * 100;
}
```