- From: Judson Lester via GitHub <sysbot+gh@w3.org>
- Date: Fri, 04 Nov 2016 21:05:08 +0000
- To: public-css-archive@w3.org
nyarly has just created a new issue for
https://github.com/w3c/csswg-drafts:
== [css3-animations] [css-transitions] animation-delay animatable? ==
As a web developer or designer, I'd like to be able to "scrub"
animations using transitions. However
1. None of the animation properties are themselves animatable and
1. This is sensible because either
1. that would admit to animating an animation property, which
makes my head swim, or
1. admitting the unique case of a property which is transitionable
without being animatable.
But:
The motivating instance is like this:
Suppose you have an animation that discloses an element - scales it
vertically, as well as changing it's opacity and color.
You'd like for there to be a style selected with `:hover` on a parent
to start that animation.
When the style no longer applies, the animation should reverse in
order to hide the element again.
My understanding an experimentation with the current spec is that I
could:
* apply the animation in the :hover style. I get the disclosure
animation, but the element simply vanishes when :hover is removed.
* apply in the :hover, and also apply the animation in reverse to a
style without :hover. This does what I want, but when the page loads,
the element initially is visible and then disappears.
## Proposal
The very generic solution that occurs to me would be: apply the
animation to the element, paused. Add `transition-property:
animation-delay` and have the :hover class apply `animation-delay: -1
second` with the intention that, when `:hover` is added to the
container element, the animation delay would transition, and so the
animation would "scrub" forward 1 second. When :hover is removed, the
reverse transition would apply, and the "scrub" would rewind the
animation back to the hidden state.
## Alternatives
It would also suit my purposes if there were a psuedo-selector for
`:lost-hover` or `:hovered.` Then, that selector could be used to
apply the reverse animation, and so avoid the page-load vanish
behavior.
In some ways, that would be better, since a separate animation might
be applied to reverse the action - however, note the complication of
needing to share a timeline, as well as somehow tweening between the
two animations if `:hover` is removed before the first animation
completes. (There's a notion of an algorithm there, but it's still an
added complication.) Furthermore, for generality, the implication is
for a lost() modifier, which I think complicates the whole thing.
In fact, the "shared timeline" concept was one of the initial drivers
for wanting to be able to use transitions to scrub animations, and
therefore making animation-delay animatable.
Please view or discuss this issue at
https://github.com/w3c/csswg-drafts/issues/683 using your GitHub
account
Received on Friday, 4 November 2016 21:05:14 UTC