Pseudo-elements in the Web Animations API
To use the Web Animations API (e.g. el.animate()
) you need a reference to a DOM element to target. So, how do you use it on pseudo-elements, which don’t really offer a direct reference? Dan Wilson covers a (newish?) part of the API itself:
const logo = document.getElementById('logo');
logo.animate({ opacity: [0, 1] }, {
duration: 100,
pseudoElement: '::after'
});
I noticed in Dan’s article that ::marker
is supported. I was just playing with that recently while doing our List Style Recipes page. I figured I’d give it a spin by testing the WAAPI and @keyframes
on both a ::marker
and and ::after
element:
At first, I confused myself because it seemed like the WAAPI wasn’t working on ::after
, but Dan reminded me that when using a transform
, the element can’t be display: inline
. Instead, I made it inline-block
and it worked fine. However, I did uncover that @keyframes
don’t seem to work on ::marker
elements in Firefox — hopefully they’ll fix that (and we get Chrome and Safari support for ::marker
ASAP).
Direct Link to Article — Permalink
The post Pseudo-elements in the Web Animations API appeared first on CSS-Tricks.