- From: L. David Baron <dbaron@dbaron.org>
- Date: Sat, 16 Apr 2011 08:24:28 -0700
- To: Simon Fraser <smfr@me.com>
- Cc: "Tab Atkins Jr." <jackalmage@gmail.com>, Dean Jackson <dino@apple.com>, www-style@w3.org
On Tuesday 2011-04-12 11:33 -0700, Simon Fraser wrote:
> On Apr 12, 2011, at 10:29 AM, L. David Baron wrote:
> > On Tuesday 2011-04-12 08:56 -0700, Tab Atkins Jr. wrote:
> >> On Mon, Apr 11, 2011 at 9:09 PM, L. David Baron <dbaron@dbaron.org> wrote:
> >> You need to check all the keyframes. Given a keyframe like this:
> >>
> >> @keyframes wobble {
> >> 0% { left: 0; top: 0; }
> >> 33% { top: 100px; }
> >> 67% { top: -100px; }
> >> 100% { left: 100px; top: 0; }
> >> }
> >>
> >> In the middle third of the animation, the nearest keyframe blocks
> >> don't have any mention of 'left', but 'left' is still being animated.
> >
> > The spec should perhaps mention that somewhere.
>
> Agreed :)
>
> > Additionally, it should say how that behavior interacts with timing
> > functions specified in keyframes.
>
> In this case left animates exactly as if the middle two keyframes were missing:
>
> @keyframes wobble {
> 0% { left: 0; top: 0; }
> 100% { left: 100px; top: 0; }
> }
>
> If the first keyframe had a timing-function, then that's the one that would apply.
>
> In other words, properties are interpolated between the keyframes that specify them.
One more question about this behavior (which I don't see the spec
answering): when some of the adjacent pairs of values of a property
aren't animatable, what happens? All the spec says about
non-animatable situations is:
# Properties that are unable to be animated are ignored in these
# rules, with the exception of animation-timing-function', the
# behavior of which is described below.
-- http://dev.w3.org/csswg/css3-animations/#keyframes
For example, how is the following animated?
@keyframes fade {
0% { fill: black }
30% { fill: rgb(64, 64, 64); }
70% { fill: url(foo.svg#gradient1) }
100% { fill: white; }
}
Is there only an animation for 'fill' between 0% and 30%, or does
something else happen after 30%?
(With the way I previously interpreted the spec, it seemed
relatively obvious: the property isn't animated between pairs of
keyframes that can't be animated (e.g., after 30% in the example
above). But with the model as you've explained it, now I'm less
sure.)
-David
--
L. David Baron http://dbaron.org/
Mozilla Corporation http://www.mozilla.com/
Received on Saturday, 16 April 2011 15:24:55 UTC