- From: Antoine Quint via GitHub <sysbot+gh@w3.org>
- Date: Fri, 29 Mar 2019 15:50:36 +0000
- To: public-css-archive@w3.org
I wonder if we could have API directly to commit an animation. I worry that a lot of authors would write something like this: ```javascript function commitStyles(replaceEvent) { const animation = replaceEvent.target; const element = animation.effect.target; for (let property of Object.getOwnPropertyNames(animation.getKeyframes())) { if (property == "offset" || property == "computedOffset" || property == "easing" || property == "composite") continue; element.style[property] = replaceEvent.computedStyle[property]; } } target.animate(…).onreplace = commitStyles; ``` I think it'd be awesome if we could provide some built-in function on an effect to apply its animated values directly to the target, with potentially a list of properties to commit. ```javascript // Commit all animated properties to inline style upon completion. target.animate(…).onreplace = evt => { evt.target.effect.commitAnimatedProperties(); }; // Commit select animated properties to inline style upon completion. target.animate(…).onreplace = evt => { evt.target.effect.commitAnimatedProperties("transform", "opacity"); }; ``` Naming certainly could improve, there likely is a catchier and shorter name for the function of committing some animated properties to inline style. We could take it one step further and forgo the use of the `replace` event entirely with: ```javascript // Commit all animated properties to inline style upon completion. target.animate( { transform: 'translateX(-80px)', composite: 'add' }, { duration: 1000, easing: 'ease', commit: 'all' } ); // Commit select animated properties to inline style upon completion. target.animate( { transform: 'translateX(-80px)', composite: 'add' }, { duration: 1000, easing: 'ease', commit: ['transform', 'opacity'] } ); ``` -- GitHub Notification of comment by graouts Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/3689#issuecomment-478049033 using your GitHub account
Received on Friday, 29 March 2019 15:50:38 UTC