- From: Brian Birtles via GitHub <sysbot+gh@w3.org>
- Date: Tue, 05 Dec 2017 04:41:26 +0000
- To: public-css-archive@w3.org
_From @Martin-Pitt on November 22, 2017 17:21_
I feel like as if array-based offsets are quite explicit that they should be skipped and merged later in via a second pass. Rather than trying to figure out a complex algorithm that would weave them in-between implicit keyframes.
Kinda like how in css a `position: relative`/`absolute` element is rendered after all the `position: static` elements.
So, given an original keyframe list of:
```
var input = [
{ opacity: 1, offset: [.2, .4, .6, 1] },
{ opacity: .2, offset: [.3, .7] },
{ opacity: 0 },
{ opacity: .5 },
{ opacity: 0 }
];
```
We'd compute following keyframes: (picking up all the non-array and implicit keyframes)
```
var first = [
{ opacity: 0, offset: 0 },
{ opacity: .5, offset: .5 },
{ opacity: 0, offset: 1 }
];
```
Generate the keyframes of the array-based offsets:
```
var second = [
{ opacity: 1, offset: .2 },
{ opacity: .2, offset: .3 },
{ opacity: 1, offset: .4 },
{ opacity: 1, offset: .6 },
{ opacity: .2, offset: .7 },
{ opacity: 1, offset: 1 }
];
```
Then merge the two arrays to get the following computed keyframes:
```
var computed = [
{ opacity: 0, offset: 0 },
{ opacity: 1, offset: .2 },
{ opacity: .2, offset: .3 },
{ opacity: 1, offset: .4 },
{ opacity: .5, offset: .5 },
{ opacity: 1, offset: .6 },
{ opacity: .2, offset: .7 },
{ opacity: 1, offset: 1 }
];
```
This seems more mechanically easier to reason about in my opinion, but I'd like to hear your thoughts?
--
GitHub Notification of comment by birtles
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/2060#issuecomment-349193683 using your GitHub account
Received on Tuesday, 5 December 2017 04:41:30 UTC