精神入侵
本帖最后由 马黑黑 于 2023-12-14 18:40 编辑 <br /><br /><style>#papa { margin: 0 0 -80px calc(50% - 593px); width: 1024px; height: 640px; background: #666 url('https://638183.freep.cn/638183/t23/webp2/jkufruqb.webp') no-repeat center/cover; overflow: hidden; display: grid; place-items: center; box-shadow: 3px 6px 12px gray; position: relative; z-index: 1; --state: paused; }
#player { width: 300px; height: 300px; cursor: pointer; background: url('https://638183.freep.cn/638183/web/svg/jkrq.svg') no-repeat center/cover; filter: brightness(200%) opacity(.6); animation: rotating 18s linear infinite var(--state); position: relative; }
#player::before, #player::after { position: absolute; content: ''; width: 100%; height: 100%; background: inherit; transform: rotate(135deg); filter: invert(80%) opacity(.7); }
#player::after { transform: rotate(60deg); filter: invert(100%) opacity(.5); }
li-zi { position: absolute; width: 60px; height: 8px; border-radius: 100% 20%; background: tan; animation: imov 6s infinite; }
@keyframes moving {
from { opacity: 1; transform: translate(var(--x0),var(--y0)) rotate(var(--deg)); }
to { opacity: 0; transform: translate(0,0) rotate(var(--deg)); }
}
@keyframes rotating { to { transform: rotate(360deg); } }
</style>
<div id="papa">
<div id="player" title="播放/暂停"></div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=1810150717" autoplay loop></audio>
</div>
<script>
(function() {
let all = 160;
for(let i = 0; i < all; i++) {
let movBall = document.createElement('li-zi');
let hudu = Math.PI / 180 * 360 / all * i;
let xx = 600 * Math.cos(hudu), yy = 600 * Math.sin(hudu);
movBall.style.cssText += `
--x0: ${xx}px;
--y0: ${yy}px;
--deg: ${360 / all * i}deg;
background: #${Math.random().toString(16).substr(-6)};
animation: moving ${Math.random() * 20 + 20}s -${Math.random() * 20}s infinite var(--state);
`;
papa.prepend(movBall);
}
let playMusic = () => aud.paused ? (aud.play(), player.title='暂停') : (aud.pause(), player.title='播放');
let mState = () => papa.style.setProperty('--state', aud.paused ? 'paused' : 'running');
aud.addEventListener('playing',mState,false);
aud.addEventListener('pause',mState,false);
player.addEventListener('click',playMusic,false);
})();
</script>
【附】帖子代码
<style>
#papa { margin: 0 0 0 calc(50% - 593px); width: 1024px; height: 640px; background: #666 url('https://638183.freep.cn/638183/t23/webp2/jkufruqb.webp') no-repeat center/cover; overflow: hidden; display: grid; place-items: center; box-shadow: 3px 6px 12px gray; position: relative; z-index: 1; --state: paused; }
#player { width: 300px; height: 300px; cursor: pointer; background: url('https://638183.freep.cn/638183/web/svg/3bb.svg') no-repeat center/cover; filter: brightness(200%) opacity(.6); animation: rotating 18s linear infinite var(--state); position: relative; }
#player::before, #player::after { position: absolute; content: ''; width: 100%; height: 100%; background: inherit; transform: rotate(135deg); filter: invert(80%) opacity(.7); }
#player::after { transform: rotate(60deg); filter: invert(100%) opacity(.5); }
li-zi { position: absolute; width: 60px; height: 8px; border-radius: 100% 20%; background: tan; animation: imov 6s infinite; }
@keyframes moving {
from { opacity: 1; transform: translate(var(--x0),var(--y0)) rotate(var(--deg)); }
to { opacity: 0; transform: translate(0,0) rotate(var(--deg)); }
}
@keyframes rotating { to { transform: rotate(360deg); } }
</style>
<div id="papa">
<div id="player" title="播放/暂停"></div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=1810150717" autoplay loop></audio>
</div>
<script>
(function() {
let all = 160;
for(let i = 0; i < all; i++) {
let movBall = document.createElement('li-zi');
let hudu = Math.PI / 180 * 360 / all * i;
let xx = 600 * Math.cos(hudu), yy = 600 * Math.sin(hudu);
movBall.style.cssText += `
--x0: ${xx}px;
--y0: ${yy}px;
--deg: ${360 / all * i}deg;
background: #${Math.random().toString(16).substr(-6)};
animation: moving ${Math.random() * 20 + 20}s -${Math.random() * 20}s infinite var(--state);
`;
papa.prepend(movBall);
}
let playMusic = () => aud.paused ? (aud.play(), player.title='暂停') : (aud.pause(), player.title='播放');
let mState = () => papa.style.setProperty('--state', aud.paused ? 'paused' : 'running');
aud.addEventListener('playing',mState,false);
aud.addEventListener('pause',mState,false);
player.addEventListener('click',playMusic,false);
})();
</script>
这个有点像病毒{:4_173:} 世外桃源 发表于 2023-12-13 12:58
这个有点像病毒
{:4_203:} 马黑黑 发表于 2023-12-13 12:59
细菌入侵 世外桃源 发表于 2023-12-13 12:59
细菌入侵
都行 高度戒备,危机来咯~~{:4_173:} 回帖还有奖励~~ 继续戒备~~ 继续戒备~~ 高度戒备~~ 高度戒备~~ 高度戒备~~ 高度戒备~~ 持续戒备~~ 持续戒备~~ 放松戒备~~{:4_189:} 抽象的画面,真是的感觉。{:5_116:} 马黑黑 发表于 2023-12-13 12:15
【附】帖子代码
这个有意思,又是一个漂亮的svg图片,并用委员组合到一起,很漂亮{:4_173:}
粒子变成长条状了,也很别致呢{:4_187:} 变成长条形需要考虑它的角度了,这个细节倒是需要注意的呢。{:4_187:}