- From: Brian Birtles <bbirtles@mozilla.com>
- Date: Wed, 10 Sep 2014 11:46:36 +0900
- To: Dean Jackson <dino@apple.com>, "<www-style@w3.org>" <www-style@w3.org>
Hi Dean,
Thanks for this. I like the features you've proposed a lot. I'm going to
respond to the timebase part and the additive part in separate messages.
First the easy one, animation-behavior.
On 2014/09/10 7:58, Dean Jackson wrote:
> animation-behavior
> -----------------
>
> Name: animation-behavior
> Value: replace | add
I think this is supposed to be '[ replace | add ]#' ?
> Initial: replace
> Inherited: no
> Animatable: no
>
> Defines how multiple animations on the same property interact with each other.
>
> The default value is "replace", where the last animation will overwrite all
> other animations in definition order.
The model in Web Animations lets you set the additive behavior
per-animation and per-keyframe. This latter part, per-keyframe lets you
do some powerful effects from SVG's to-animation to Kevin Doughty's
seamless/relative/negative delta/hypermatic animations.[1]
> A value of "additive" means that the animation will add to the value provided
> by the previous animation. This term, and how it works on various properties
> like transform and color, is defined in lots of other specs. For example,
> section 4.1.3 of the Web Animations spec lists a lot of cases (color, transforms,
> lengths).
We also discovered a third mode, 'accumulate' is useful which does
component matching (we needed this in order to match SVG's accumulate
behaviour). So for the following:
@keyframes a {
to {
transform: scale(2);
filter: blur(5px);
}
}
@keyframes b {
to {
transform: scale(3);
filter: blur(10px);
}
}
Using the following:
animation: a 5s forwards, b 5s forwards add;
You'd end with a computed style of:
transform: scale(2) scale(3);
filter: blur(5px) blur(10px);
But with the following:
animation: a 5s forwards, b 5s forwards accumulate;
You'd end with a computed style of:
transform: scale(5);
filter: blur(15px);
So, in summary, the Web Animations model is:
animation-composite: [ replace | add | accumulate ]#
And the same property can also be used on individual keyframes and
overrides in the same way as animation-timing-function.
Best regards,
Brian
[1] http://kxdx.org/
Received on Wednesday, 10 September 2014 02:47:07 UTC