blob: 3cc0c93470ec71fa3830998339027796169de8e1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body::before {
animation: body 10s infinite;
background-color: lime;
content: "body-before";
width: 100px;
}
.div-before::before {
animation: div-before 10s infinite;
background-color: lime;
content: "div-before";
width: 100px;
}
.div-after::after {
animation: div-after 10s infinite;
background-color: lime;
content: "div-after";
width: 100px;
}
.div-marker {
display: list-item;
list-style-position: inside;
}
.div-marker::marker {
content: "div-marker";
}
@keyframes body {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes div-before {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes div-after {
from {
opacity: 1;
}
50% {
opacity: 0.9;
}
to {
opacity: 0;
}
}
</style>
</head>
<body>
<div class="div-before"></div>
<div class="div-after"></div>
<div class="div-marker"></div>
<script>
"use strict";
// The reason why we currently run the animation on `::marker` with Web Animations API
// instead of CSS Animations is because it requires `layout.css.marker.restricted`
// pref change.
document.querySelector(".div-marker").animate(
{
color: ["black", "lime"],
},
{
id: "div-marker",
duration: 10000,
iterations: Infinity,
pseudoElement: "::marker",
}
);
</script>
</body>
</html>
|