Web 动画 API 中的伪元素

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 $200 免费额度!

要使用 Web 动画 API(例如 el.animate()),您需要一个指向目标 DOM 元素的引用。 那么,如何在伪元素上使用它呢? 伪元素并没有提供直接引用。 Dan Wilson 介绍 了 API 本身的一个(新的?)部分

const logo = document.getElementById('logo');

logo.animate({ opacity: [0, 1] }, {
  duration: 100,
  pseudoElement: '::after'
});

我在 Dan 的文章中注意到 ::marker 是受支持的。 我最近在做我们的 列表样式配方 页面时,一直在玩这个。 我想通过在 ::marker::after 元素上测试 WAAPI 和 @keyframes 来试一试。

一开始,我把自己搞糊涂了,因为看起来 WAAPI 似乎没有在 ::after 上起作用,但 Dan 提醒我,当使用 transform 时,元素不能是 display: inline。 相反,我将其设为 inline-block,它就正常工作了。 不过,我确实发现 @keyframes 似乎在 Firefox 中的 ::marker 元素上不起作用 - 希望他们能解决这个问题(而且我们尽快在 Chrome 和 Safari 中获得对 ::marker 的支持)。

直接链接 →