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 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body::before {
animation: body 100s infinite;
background-color: lime;
content: "body-before";
width: 100px;
}
.div-before::before {
animation: div-before 100s infinite;
background-color: lime;
content: "div-before";
width: 100px;
}
.div-after::after {
animation: div-after 100s infinite;
background-color: lime;
content: "div-after";
width: 100px;
}
.div-marker {
display: list-item;
list-style-position: inside;
}
.div-marker::marker {
content: "div-marker";
}
::view-transition-group(*),
::view-transition-old(*),
::view-transition-new(*) {
/* large number so the view-transition pseudo elements are available during the whole test */
animation-duration: 3600s;
}
::view-transition-group(my-vt) {
animation-name: my-vt-animation;
}
.div-view-transition {
view-transition-name: my-vt;
}
@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;
}
}
@keyframes my-vt-animation {
from {
rotate: 360deg;
}
to {
opacity: 0deg;
}
}
</style>
</head>
<body>
<div class="div-before"></div>
<div class="div-after"></div>
<div class="div-marker"></div>
<div class="div-view-transition">Hello</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>
|