<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>创意硬币弹跳Loading</title>
<meta
name="viewport"
content="width=device-width, initial-scale=1, viewport-fit=cover"
/>
<style>
*{border:0;box-sizing:border-box;margin:0;padding:0;}:root{--hue:163;--hue2:43;--bg:hsl(var(--hue),90%,30%);--fg:hsl(0,0%,100%);font-size:calc(20px + (40 - 20) * (100vw - 280px) / (3840 - 280));}body{background-color:var(--bg);color:var(--fg);display:flex;font:1em/1.5 sans-serif;height:100vh;transition:background-color var(--trans-dur),color var(--trans-dur);}.pl{display:flex;flex-direction:column;justify-content:space-between;align-items:center;margin:auto;width:9.1em;height:9.1em;}.pl__coin,.pl__coin-flare,.pl__coin-inscription,.pl__coin-layers,.pl__shadow{animation-duration:2s;animation-timing-function:cubic-bezier(0.37,0,0.63,1);animation-iteration-count:infinite;}.pl__coin{animation-name:bounce;position:relative;transform:translateY(0.5em);z-index:1;}.pl__coin-flare,.pl__coin-inscription,.pl__coin-layer{position:absolute;}.pl__coin-flare{animation-name:flare1;background-color:white;clip-path:polygon(
50% 0,67% 33%,100% 50%,67% 67%,50% 100%,33% 67%,0 50%,33% 33%
);top:0;left:-0.5em;width:1em;height:1em;transform:scale(0);z-index:1;}.pl__coin-flare:nth-child(2){animation-name:flare2;top:-0.5em;left:0;}.pl__coin-flare:nth-child(3){animation-name:flare3;left:3em;}.pl__coin-flare:nth-child(4){animation-name:flare4;top:-0.5em;left:3.5em;}.pl__coin-inscription{animation-name:inscription-front;background-color:hsl(var(--hue2),90%,45%);box-shadow:0.1875em 0 0 hsl(var(--hue2),90%,40%) inset;top:50%;left:50%;width:0.5em;height:2.5em;transform:translate(-50%,-50%) rotateZ(30deg);}.pl__coin-layer{background-color:hsl(var(--hue2),90%,50%);backface-visibility:hidden;border-radius:50%;box-shadow:0 0 0 0.375em hsl(var(--hue2),90%,70%) inset;top:0;left:0;width:100%;height:100%;}.pl__coin-layer:first-child{transform:translate3d(0,0,0.5em);}.pl__coin-layer:nth-child(2){transform:translate3d(0,0,0.49em) rotateY(180deg);}.pl__coin-layer:nth-child(3){backface-visibility:visible;border-radius:0;left:50%;width:0.98em;transform:translateX(-50%) rotateY(90deg);}.pl__coin-layer:nth-child(4){transform:translate3d(0,0,-0.49em);}.pl__coin-layer:last-child{transform:translate3d(0,0,-0.5em) rotateY(180deg);}.pl__coin-layer:nth-child(n + 2):nth-last-child(n + 2){background-color:hsl(var(--hue2),90%,40%);box-shadow:none;}.pl__coin-layer:last-child .pl__coin-inscription{animation-name:inscription-back;transform:translate(-50%,-50%) rotateZ(-30deg);}.pl__coin-layers{animation-name:roll;position:relative;width:4em;height:4em;transform:rotateY(-15deg) rotateZ(-30deg);transform-style:preserve-3d;}.pl__shadow{animation-name:shadow;background-color:hsla(var(--hue),90%,10%,0.3);border-radius:50%;width:4em;height:0.5em;}@keyframes bounce{from,50%,to{animation-timing-function:cubic-bezier(0.33,0,0.67,0);transform:translateY(0.5em);}25%,75%{animation-timing-function:cubic-bezier(0.33,1,0.67,1);transform:translateY(5.1em);}}@keyframes flare1{from,75%,to{animation-timing-function:cubic-bezier(0.33,0,0.67,0);transform:scale(0);}87.5%{animation-timing-function:cubic-bezier(0.33,1,0.67,1);transform:scale(1);}}@keyframes flare2{from,to{animation-timing-function:cubic-bezier(0.33,1,0.67,1);transform:scale(1);}12.5%,87.5%{animation-timing-function:cubic-bezier(0.33,0,0.67,0);transform:scale(0);}}@keyframes flare3{from,25%,50%,to{animation-timing-function:cubic-bezier(0.33,0,0.67,0);transform:scale(0);}37.5%{animation-timing-function:cubic-bezier(0.33,1,0.67,1);transform:scale(1);}}@keyframes flare4{from,37.5%,62.5%,to{animation-timing-function:cubic-bezier(0.33,0,0.67,0);transform:scale(0);}50%{animation-timing-function:cubic-bezier(0.33,1,0.67,1);transform:scale(1);}}@keyframes inscription-front{from,75%{animation-timing-function:cubic-bezier(0.12,0,0.39,0);box-shadow:0.1875em 0 0 hsl(var(--hue2),90%,40%) inset;}87.49%{animation-timing-function:steps(1);box-shadow:0.875em -0.75em 0 hsl(var(--hue2),90%,40%) inset;}87.5%{animation-timing-function:cubic-bezier(0.61,1,0.88,1);box-shadow:-0.875em 0.75em 0 hsl(var(--hue2),90%,40%) inset;}to{box-shadow:0.1875em 0 hsl(var(--hue2),90%,40%) inset;}}@keyframes inscription-back{from,75%{box-shadow:-1em -0.875em 0 hsl(var(--hue2),90%,40%) inset;}to{box-shadow:1.125em 1em 0 hsl(var(--hue2),90%,40%) inset;}}@keyframes roll{from,75%{transform:rotateY(-15deg) rotateZ(-30deg) rotateY(0);}to{transform:rotateY(-15deg) rotateZ(-30deg) rotateY(-1turn);}}@keyframes shadow{from,50%,to{animation-timing-function:cubic-bezier(0.33,0,0.67,0);background-color:hsla(var(--hue),90%,10%,0.3);transform:scale(0.6);}25%,75%{animation-timing-function:cubic-bezier(0.33,1,0.67,1);background-color:hsla(var(--hue),90%,10%,0.5);transform:scale(1);}}</style>
</head>
<body>
<div class="pl"><div class="pl__coin"><div class="pl__coin-flare"></div><div class="pl__coin-flare"></div><div class="pl__coin-flare"></div><div class="pl__coin-flare"></div><div class="pl__coin-layers"><div class="pl__coin-layer"><div class="pl__coin-inscription"></div></div><div class="pl__coin-layer"></div><div class="pl__coin-layer"></div><div class="pl__coin-layer"></div><div class="pl__coin-layer"><div class="pl__coin-inscription"></div></div></div></div><div class="pl__shadow"></div></div>
</body>
</html>