- From: Brad Kemper <brad.kemper@gmail.com>
- Date: Tue, 22 Dec 2009 09:52:22 -0800
- To: L. David Baron <dbaron@dbaron.org>
- Cc: www-style@w3.org
- Message-Id: <06556B2F-D012-48DE-8363-C9A0D38C19DA@gmail.com>
On Dec 17, 2009, at 1:18 PM, L. David Baron wrote:
> I can't find anything in http://dev.w3.org/csswg/css3-animations/
> that says what to do when different keyframes have different sets of
> properties. For example, how would an implementation handle:
> # @keyframes one {
> # from { top: 100px; left: 100px; }
> # 50% { top: 200px; left: 125px; }
> # to { top: 100px; }
> # }
I would expect this to be the same as the following:
# @keyframes one {
# from { top: 100px; left: 100px; }
# 50% { top: 200px; left: 125px; }
# to { top: 100px; left: 125px; }
# }
Thus, the final frame doesn't change the 'left' property, so it stays the same as the last keyframe that did change it. Should work in reverse too, so that a missing property from the first keyframe takes on the same value as when it does show up.
> [skipping the part where I don't grok the relevance..]
> Furthermore, is it even allowed to do something like this:
> # @keyframes one {
> # from { top: 100px; left: 100px; }
> # 50% { top: 200px; }
> # to { top: 100px; left: 300px; }
> # }
> It seems relatively obvious how one *could* handle this,
As this (interpolate missing values when values exist before and after the keyframes with the missing values)?
# @keyframes one {
# from { top: 100px; left: 100px; }
# 50% { top: 200px; left: 150px; }
# to { top: 100px; left: 300px; }
# }
> but I'd
> have no idea how 'left' would animate in this case:
> # @keyframes one {
> # from { top: 100px; left: 100px; animation-timing-function: ease-out; }
> # 50% { top: 200px; animation-timing-function: ease-in; }
> # to { top: 100px; left: 300px; }
> # }
That's a toughie. Perhaps interpolate the missing value first, and then apply the timing function? Like this:
# @keyframes one {
# from { top: 100px; left: 100px; animation-timing-function: ease-out; }
# 50% { top: 200px; left: 150px; animation-timing-function: ease-in; }
# to { top: 100px; left: 300px; }
# }
That at least makes the math easy to understand, and the position predictable.
Attachments
- application/pkcs7-signature attachment: smime.p7s
Received on Tuesday, 22 December 2009 17:53:03 UTC