Re: [csswg-drafts] [web-animations-1] Alternative to FillAnimation: replace events (#3689)

Incorporating some of the suggestions that have come up on this thread, the proposed IDL might be something like:

```webidl
enum RemoveState {
  "no", // Not yet removed
  "removed",
  "persisted"
};

partial interface Animation {
  attribute EventHandler onremove;
  readonly attribute RemoveState removed;

  void commitComputedStyles(optional sequence<DOMString> propertiesToCommit);
  void persist();
};

[Exposed=Window,
 Constructor (DOMString type, optional AnimationRemoveEvent eventInitDict)]
interface AnimationRemoveEvent : Event {
    readonly attribute double? timelineTime;
    readonly attribute CSSStyleDeclaration computedStyle;
    readonly attribute StylePropertyMapReadOnly computedStyleMap;
};

dictionary AnimationRemoveEventInit : EventInit {
  double? timelineTime = null;
  CSSStyleDeclaration computedStyle;
  StylePropertyMapReadOnly computedStyleMap;
};
```

Or, alternatively:

```webidl
enum CommitKeyword = { "all", "none" };

partial dictionary KeyframeEffectOptions {
  commit: CommitKeyword or sequence<string> = "none";
};

partial interface KeyframeEffect {
  readonly attribute (CommitKeyword or FrozenArray<string>) commit;
};
```

Unfortunately, I don't think the latter alone covers the case where the author wants to persist the full effect so I suspect we would need most of the first part too (but probably minus the `commitComputedStyles` part).

-- 
GitHub Notification of comment by birtles
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/3689#issuecomment-478834013 using your GitHub account

Received on Tuesday, 2 April 2019 03:51:13 UTC