- From: Brian Birtles via GitHub <sysbot+gh@w3.org>
- Date: Mon, 15 Jan 2018 00:13:25 +0000
- To: public-css-archive@w3.org
After few further thoughts on this API.
**Observation 1: `updateTiming` feels a little awkward.**
[`setState`](https://reactjs.org/docs/react-component.html#setstate) in React merges the provided keys with the existing state. It might be more natural/familiar to have `setTiming` do likewise and, if necessary, add `replaceTiming` or `resetTiming` to clobber existing state.
I say _if necessary_ because I wonder what the use cases are for resetting all timing where you're not already specifying all the members. e.g. if you're doing `effectA.setTiming(effectB.getTiming())` then you don't need the reset behavior since you're specifying all the members already. React [dropped `replaceState`](https://github.com/facebook/react/issues/3236) since they found it unnecessary and harmful in some cases.
**Observation 2: We may want to introduce `resetTiming` for CSS animations/transitions later**
See discussion in #2068.
The proposal there is we would have a subclass of `KeyframeEffect` used by CSS animations/transitions that adds `resetTiming()` which could be used to make overriden timing properties revert to tracking markup.
One possibility, and this might be a bit too complex, is to introduce `resetTiming` on `AnimationEffect` itself with the behavior that it takes an `EffectTiming` dictionary _without default values_, and for each unspecified value we have the following behavior:
* If this is a markup-bound animation, use the value provided by markup (e.g. `transition-duration`, `animation-duration`) -- basically drop any overidden value.
* Otherwise, use the default value from `DefaultEffectTiming` or whatever we call it.
That way, on a markup-bound animation, `effect.resetTiming()` removes all overrides. On other animations it resets everything, and `effect.resetTiming({ duration: 3000 })` resets everything exception the duration.
I suspect that might be conflating two concepts however, and we should probably have separate methods for resetting to the Web Animations default vs resetting to the markup value.
--
GitHub Notification of comment by birtles
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/2065#issuecomment-357555048 using your GitHub account
Received on Monday, 15 January 2018 00:13:27 UTC