:doodle { @grid: 2 / 800px 100px; color: var(--color); bottom: 20px; z-index: 100; --prog: 0%; --size: 40px; --ttmsg1: '00:00'; --ttmsg2: '00:00'; --color: RoyalBlue; } /* 时间信息 : 左 */ @nth(1) { @place: 5% 140%; :after { content: var(--ttmsg1); } } /* 控制器 */ @nth(2) { @size: 60px; @shape: windmill; @place: 50% 35%; background: var(--color); animation: rot 6s infinite linear var(--state); } /* 时间信息 : 右 */ @nth(3) { @place: 95% 140%; :after { content: var(--ttmsg2); } } /* 进度条 */ @nth(4) { @place: 50% 80%; @size: 100% 2px; background: Silver; display: grid; place-items: center start; :before { content: ''; width: var(--prog); height: 100%; background: var(--color); } } @keyframes rot { to { transform: rotate(1turn); } } :doodle { @size: auto 4em; top: 80px; --geci: "花潮lrc在线"; --motion: cover2; --tt: 1s; } /* 单元格两个伪元素显示lrc歌词 */ display: grid; place-items: center start; :before, :after { content: var(--geci); color: snow; /* 歌词底色 */ font: bold 2.4em sans-serif; text-shadow: 1px 1px 1px #000; white-space: pre; } :after { position: absolute; width: 0; color: RoyalBlue; /* 同步歌词颜色 */ overflow: hidden; animation: var(--motion) var(--tt) linear forwards var(--state); } @keyframes cover1 { from { width: 0; } to { width: 100%; } } @keyframes cover2 { from { width: 0; } to { width: 100%; } } :doodle { @size: 1278px 644px; --state:paused; } position: absolute; left: @r(-105)%; top: 10%; :after { position: absolute; content: '@p(❄,❄,❄,❄,❄,❄,❄,❄,❄,❄,❄,❄,❄,❄,❄,❄)'; color:AliceBlue; font-size: @r(8, 30)px; } animation: fall 40s @r(-6, 36)s infinite var(--state); @keyframes fall { from { transform: rotate(0deg) translate(0px); } to { transform: rotate(@r(-60,60)deg) translate(1500px); } }