W3C home > Mailing lists > Public > www-style@w3.org > September 2014

Re: [css-animations] animation-iteration-count: infinite and animation-duration: 0s

From: Brian Birtles <bbirtles@mozilla.com>
Date: Fri, 05 Sep 2014 08:18:19 +0900
Message-ID: <5408F33B.5090302@mozilla.com>
To: Sylvain Galineau <galineau@adobe.com>
CC: "<www-style@w3.org>" <www-style@w3.org>
On 2014/09/05 4:36, Sylvain Galineau wrote:
>
> On Sep 3, 2014, at 7:27 PM, Brian Birtles <bbirtles@mozilla.com> wrote:
>
>> Hi,
>>
>> While we're tying up loose ends in CSS animations, what is the behavior of the following?
>>
>>   animation-duration: 0s;
>>   animation-iteration-count: infinite;
>>   animation-fill-mode: both;
>>
>> The problem arises because when we come to calculate the active duration of the animation we get:
>>
>>   active duration = 0 * infinity = indeterminate form
>>
>> In Web Animations we came across this situation and considered some possibilities:
>>
>>   a) let active duration = 0 -> final key frame value is shown, start/end events are dispatched
>>
>>   b) let active duration = infinity -> initial key frame value is shown, start event only is dispatched
>>
>>   c) it's invalid -> nothing is shown, no events are dispatched
>>
>> Currently, the spec says (a)[1] but when we discussed this recently we decided (b) is probably preferable.[2]
>>
>> We liked (c) too but it complicated the model and the API since it involves more checks for this particular edge case.
>>
>> What do you think?
>
> (a) seems hard to explain, imo.

It's basically treating the animation as if it finished instantaneously 
hence it just keeps filling with the final value.

> (b) sounds reasonable, though I assume the initial keyframe is only visible because the iteration count is infinite?

Right, in this approach the animation is infinitely long so it never 
progresses past the first frame.

> (c) Yeah, no sure why this needs to be invalid.

Because you're effectively specifying an animation of undefined length. 
Is it zero? Is it infinity? Actually, mathematically, it's neither. It's 
NaN. The correct thing is to not run the animation but that might not be 
the most useful thing.

I'm ok with (b) if everyone else agrees but if anyone wants to argue for 
(c) I'd be sympathetic to that.

Best regards,

Brian
Received on Thursday, 4 September 2014 23:18:37 UTC

This archive was generated by hypermail 2.4.0 : Friday, 25 March 2022 10:08:46 UTC