W3C home > Mailing lists > Public > public-fx@w3.org > October to December 2014

Re: [web-animations] unclear iteration start behaviour for animation sequence

From: Сергей Грехов <sgrekhov@unipro.ru>
Date: Mon, 22 Dec 2014 12:04:43 +0600
Message-ID: <654f6b4ea2dcb8c9f2a182a0816f6df7.squirrel@unipro.ru>
To: "Tab Atkins Jr." <jackalmage@gmail.com>
Cc: "public-fx@w3.org" <public-fx@w3.org>, dom@unipro.ru
Hi Tab,

Let's see note at
http://w3c.github.io/web-animations/#dom-animationtiming-iterationstart

"Note that the value of iterations is effectively added to the
iterationStart such that an animation node with an iterationStart of ‘0.5’
and iterations of ‘2’ would still repeat twice however it would begin and
end half-way through the animation node’s iteration interval."

It is said that in ends on half-way through animation. Logically that it
means that the second half of a first iteration should be played first,
then the second iteration played and after that the first half of the
first iteration (that was "cut" by iteration start) should be played and
ended on a half-way. Is this correct?

If yes then for animation sequence part of the sequence, which is "cut" by
animation start property, should be added to the end of the sequence. Then
it looks strange if animation1 from the example below should remain in
forward-filling state and then be played.

Sergey






> On Thu, Dec 18, 2014 at 10:14 PM, "Сергей Грехов" <sgrekhov@unipro.ru>
> wrote:
>> Hi All,
>>
>> It's unclear from the current spec animation sequence behaviour with not
>> null iteration start. Example:
>>
>>     var animation1 = new Animation(target1, [], {
>>         duration: 10,
>>         fill: 'forwards'
>>     });
>>     var animation2 = new Animation(target2, [], {
>>         duration: 190
>>     });
>>     var animation3 = new Animation(target3, [], {
>>         duration: 800
>>     });
>>     var animationSequence = new AnimationSequence([animation1,
>> animation2,
>> animation3], {
>>         iterationStart: 0.1
>>     });
>>     var player = document.timeline.play(animationSequence);
>>
>>     player.ready.then(function() {
>>         // Total duration of the sequence is 1000. Because of iteration
>>         // start animation should begin from moment that corresponds
>>         // time 100. animation1 is finished at this time.
>>         // What should be animation1 behaviour?
>>         // Should animation1 be at the end time (because of fill mode
>>         // forwards)? Or should not be started yet (should start at time
>>         // 900)?
>>     });
>>
>> Specification should more clearly define this behavoiur (in terms of
>> scaled active time I think)
>
> animation1 has already been played through; it's now in the
> forward-filling state, and will remain that way for the rest of the
> animation.
>
> (There's no behavioral difference between starting the animation at .1
> iteration, and starting it at 0 then letting it play through .1 of an
> iteration, except you'll miss some events in the former case.)
>
> ~TJ
>
Received on Monday, 22 December 2014 06:09:43 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:49:52 UTC