- From: Rik Cabanier <cabanier@gmail.com>
- Date: Tue, 19 Apr 2011 14:03:13 -0700
- To: Alan Gresley <alan@css-class.com>
- Cc: "Tab Atkins Jr." <jackalmage@gmail.com>, Andrew Fedoniouk <news@terrainformatica.com>, www-style@w3.org
- Message-ID: <BANLkTimATc_WDpPpB7h+mnfndcxhTo0SuQ@mail.gmail.com>
On Mon, Apr 18, 2011 at 4:21 AM, Alan Gresley <alan@css-class.com> wrote: > On 18/04/2011 11:57 AM, Tab Atkins Jr. wrote: > >> On Sun, Apr 17, 2011 at 4:04 PM, Andrew Fedoniouk >> <andrew.fedoniouk@live.com> wrote: >> >>> As soon as we have transitions/animations... >>> Are we going to introduce something like scenarios (or extend animations) >>> to support group transitions like above? >>> >> >> This seems like the sort of thing that is perfectly suited for >> javascript rather than CSS. With better APIs for producing, >> triggering, and composing animations in JS (which I expect to show >> up), this'll be easy to accomplish. >> >> ~TJ >> > > > I like the concept of animation groups. the firing of animations should not > have to be only achieved via JS. Currently well timed keyframes on different > elements can allow quite amazing animations. The effects I'm talking about > are animations where one can have a perception of camera (viewers > perspective) movement and panning that is seen with <canvas>. This movement > and panning of a camera (viewers perspective) done with CSS animation and JS > controls has been achieved in this demo [1]. > The drawback with well timed keyframes on different elements is the > animation itself (or multiple animations) is of specific time periods where > the keyframes only allow values ranging from 0% (from) to 100% (to). To > create a long animations (split up in groups), one has to query via JS when > one animation has ended before another animation can be triggered by JS. > Your proposal is about making the CSS easier to author, correct? You can already create these long animations with very long keyframes today... > > I am seeing two ways around this using just CSS. > > Example 1: > > @keyframes name { > 0s { ... } > 10s { ... } > 20s { ... } > 30s { ... } > 40s { ... } > 50s { ... } > } > > By mixing certain keyframes, one could have this. > > @keyframes clip1 { > 0s { ... } > 10s { ... } > 20s { ... } > 30s { ... } > 40s { ... } > 50s { ... } > } > > @keyframes clip2 { > 0s { ... } > 10s { ... } > } > > @keyframes clip3 { > 10s { ... } > 30s { ... } > 40s { ... } > } > > > When each keyframes has reached it's last time period, that animation > ends. > > > Example 2: > > @keyframes-group { > name(clip1) { out } > name(clip1) { spin } > name(clip3) { jump } > } > > > #clip1 { /* animation for 'out' */ > animation-duration: 50s; > animation-iteration-count: 1; > animation-timing-function: linear; > } > > @keyframes out { > from { ... } > 20% { ... } > 40% { ... } > 60% { ... } > 80% { ... } > to { ... } > } > > > These methods would make it a lot easier to create long animations. > Currently I am having to play animations for over many seconds or even > minutes to see the results of something that occurs at say 70 seconds. Being > able to use either of the above methods would mean that an author can test > one sequence (clip) of a larger animation. > > WebKit's proposed scrubbing APIs will be very useful since they will let you fast forward, pause and rewind animations. Rik
Received on Tuesday, 19 April 2011 21:03:41 UTC