diff --git a/index.html b/index.html index d878ad6..a7f7c8b 100644 --- a/index.html +++ b/index.html @@ -2909,10 +2909,14 @@

Normalizing a timing function position list

An implication of the above two conditions is that no values outside the range [0, 1] are allowed. - If we allow keyframe offsets outside [0, 1] we will need - to allow timing function offsets outside that range too - for consistency.

+
+

+ We allow keyframe offsets outside [0, 1] so we + should allow timing function offsets outside that + range too for consistency. +

+
  • The normalized timing function position list is simply input positions. @@ -3980,8 +3984,10 @@

    Keyframe animation effects

    a keyframe.

    - The positional offset of a keyframe is a value in the range - [0, 1]. + The positional offset of a keyframe is the point in the + time fraction space of the timed item to which this + keyframe animation effect belongs at which the property values + apply. The list of keyframes for a keyframe animation effect is sorted in ascending order by the positional offset of each @@ -3993,13 +3999,6 @@

    Keyframe animation effects

    Rather, this is achieved by setting a chain of timing functions on the timed item (proposal for this is still in the works).

    -

    - If, due to a timing function specified on the timed - item from which the time fraction is derived, the time - fraction lies outside the range [0, 1], the specified - keyframe property values are extrapolated to cover the extended - range. -

    The behavior when keyframes overlap or have unsupported values is defined in The unaccumulated animation value of a keyframe animation effect target property.

  • If property-specific keyframes is empty, return underlying value. -
  • If there is no keyframe with a positional offset of - 0, create a new keyframe with a positional offset of 0, - a property value set to the neutral value for composition, - and a composition operation of add, and add it to the beginning of - property-specific keyframes. -
  • Similarly, if there is no keyframe with a positional offset of - 1, create a new keyframe with a positional offset of 1, - a property value set to the neutral value for composition, - and a composition operation of add, and append it to the end of - property-specific keyframes. +
  • If all keyframes in property-specific keyframes + have the same positional offset, generate an additional + keyframe as follows. +
      +
    1. Let offset be the positional offset of + the last keyframe in property-specific + keyframes. +
    2. Create a new keyframe, synthetic keyframe, + with a single target property equal to target + property. +
    3. If offset is 0, set the positional + offset of synthetic keyframe to 1 and the + value and composition operation of synthetic + keyframe to those of the last keyframe in + property-specific keyframes. +
    4. Otherwise, set the positional offset of + synthetic keyframe to 0, the value of + synthetic keyframe to the neutral value for + composition and the composition operation of + synthetic keyframe to composition operation + add. +
    5. Insert synthetic keyframe into + property- specific keyframes such that that it + remains sorted by positional offset. +
    +
  • Iterate over each keyframe in property-specific keyframes and for each keyframe, if: