- From: Dean Jackson <dino@apple.com>
- Date: Thu, 04 Sep 2014 16:33:20 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: Dirk Schulze <dschulze@adobe.com>, Sylvain Galineau <galineau@adobe.com>, Shane Stephens <shans@google.com>, "<www-style@w3.org>" <www-style@w3.org>
> On 1 Sep 2014, at 9:08 am, Tab Atkins Jr. <jackalmage@gmail.com> wrote: > > On Sun, Aug 31, 2014 at 11:18 PM, Dirk Schulze <dschulze@adobe.com> wrote: >> I uploaded a very early draft of motion path here http://dirkschulze.github.io/specs/motion-1/ for every one who is interested. >> >> I did not include Shane’s proposal yet. I would still like to see some examples to understand it better. > > Let me explain Shane's proposal a little more. > > Motion-on-a-path is just a way of doing some relatively complex > calculations that eventually resolve into, for a given amount of > progress on the path, a translation and a rotation. So, we can define > this in translate-function terms, like: > > motion(<'motion'>) > > That is, it's a motion() function, which takes the same grammar as the > 'motion' property - a shape, a progress, and a rotation directive. > It's equivalent to a translate()/rotate() pair. > > The 'motion' property, then, would just be a property-based variant of > this, which inserts a motion() function into a specific spot at the > beginning of the final transform list. This has the nice benefits > that it can be independently set and animated and cascaded without > having to worry about any other transforms on the element. I like this suggestion (and a strong +1 to Dirk's proposal overall). One downside I don't like is that you'd have to duplicate a possibly long path in an animation. e.g. from { transform: motion(<some path> 0%); } to { transform: motion(<the same path> 100%); } If there are 30 keyframes it gets more ugly. Could we come up with a way to avoid this? (Could CSS variables help? Define a shape/path somewhere and refer to it in the motion() function?) Dean
Received on Thursday, 4 September 2014 23:33:52 UTC