马黑黑 发表于 2022-12-28 08:35

海蝴蝶

<style>
#papa { margin: 0 0 0 calc(50% - 593px); width: 1024px; height: 640px; background: darkgray url('https://638183.freep.cn/638183/t22/webp/hdhudp.webp') no-repeat center/cover; box-shadow: 4px 8px 16px #000; display: grid; place-items: center; perspective: 1800px; opacity: .95; position: relative; z-index: 1; }
.hudie { position: absolute; opacity: .8; transform-style: preserve-3d; }
</style>

<div id="papa">
        <img class="hudie" src="https://638183.freep.cn/638183/t22/gif/flower10.gif" alt="" style="bottom: 75px; left: 210px; transform: rotateY(45deg);" />
</div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=1860588801.mp3" autoplay loop></audio>

<script >
(function() {
        (function(mkPlayer) {let defaults = {lrcAr: [ ],lrc_css: 'top: 15px; left: 50%; transform: translate(-50%)',player_css: 'bottom: 5px; left: 50%; transform: translate(-50%)',angle: -90,playerCode: `<style>#mplayer {--ww: 300px;--hh:100px;--state: paused;position: absolute;width: var(--ww);height: var(--hh);transform-style: preserve-3d;cursor: pointer;z-index: 899;}#mplayer::before { position: absolute; content: ''; left: -20px; right: -20px; top: 0; bottom: -35px; }.mline {position: absolute;width: 6px;height: 10px;bottom: 0;left: calc(50% - 4px);border-radius: 10px;transition: all .35s;opacity: .95;}.mline::before {position: absolute;content: '';width: 10px;height: 10px;left: calc(50% - 5px);background: var(--psecolor);border-radius: 50%;transition: all var(--ts);animation: up 1s infinite;animation-play-state: var(--state);}#btnMsg {position: absolute;color: snow;background: darkblue;opacity: 0;border: 2px solid snow;border-radius: 8px;padding: 4px;transition: all .75s;cursor: pointer;z-index: 1001;}#lrc {--motion: cover2;--tt: 1s;--state: running;--bg: linear-gradient(180deg,hsla(100,10%,50%,.75),hsla(100,100%,20%,.65));position: absolute;font: bold 2.4em sans-serif;color: hsl(100, 100%, 90%);white-space: pre;-webkit-background-clip: text;filter: drop-shadow(1px 1px 2px hsla(0, 100%, 0%, .85));z-index: 900;}#lrc::before {position: absolute;content: attr(data-lrc);width: 20%;height: 100%;color: transparent;overflow: hidden;white-space: pre;background: var(--bg);filter: inherit;-webkit-background-clip: text;animation: var(--motion) var(--tt) linear forwards;animation-play-state: var(--state);}@keyframes cover1 { from { width: 0; }to { width: 100%; } }@keyframes cover2 { from { width: 0; } to { width: 100%; } }@keyframes up { to { top: -20px; } }</style><div id="lrc" data-lrc="HCPlayer">HCPlayer</div><div id="mplayer"></div><span id="btnMsg">全屏观赏</span>`,};let playCode = (user_config) => {let data = Object.assign({}, defaults, user_config);papa.innerHTML += data.playerCode;mplayer.style.cssText += data.player_css;lrc.style.cssText += data.lrc_css;let mKey = 0, mFlag = true, fs = false, timerId;let total = Math.floor(mplayer.offsetWidth / 8), mRad = Math.floor(mplayer.offsetWidth / 2), tnow = Date.now();mplayer.onclick = (e) => aud.paused ? aud.play() : aud.pause();btnMsg.onclick = () => fs ? document.exitFullscreen() : papa.requestFullscreen();papa.onmousemove = (e) => {clearTimeout(timerId);btnMsg.style.opacity = '.95';timerId = setTimeout('btnMsg.style.opacity = "0"', 3000);};for (j = 0; j < total; j++) {let ele = document.createElement('span');ele.className = 'mline';ele.style.cssText += `background: linear-gradient(to bottom, #${Math.random().toString(16).substr(-6)}, #${Math.random().toString(16).substr(-6)});transform: rotateY(${j*180/total + data.angle}deg) translateZ(${mRad}px);--psecolor: linear-gradient(135deg, #${Math.random().toString(16).substr(-6)}, #${Math.random().toString(16).substr(-6)});--ts: ${Math.random()}s;`;mplayer.appendChild(ele);}let lines = document.querySelectorAll('.mline');let update = () => {if (Date.now() - tnow > 65) {lines.forEach((item, key) => {let ph = aud.paused ? 0 : mplayer.offsetHeight;item.style.height = Math.random() * ph + 'px';});tnow = Date.now();}requestAnimationFrame(update);};update();aud.addEventListener('timeupdate', () => {for (j = 0; j < data.lrcAr.length; j++) {if (aud.currentTime >= data.lrcAr) {if (mKey === j) showLrc(data.lrcAr);else continue;}}});aud.addEventListener('pause', () => mState());aud.addEventListener('play', () => mState());aud.addEventListener('seeked', () => calcKey());document.addEventListener("fullscreenchange", () => {if (document.fullscreenElement !== null) {fs = true;btnMsg.innerText = '退出全屏';} else {fs = false;btnMsg.innerText = '全屏观赏';}});let mState = () => aud.paused ? (lrc.style.setProperty('--state', 'paused'), mplayer.style.setProperty('--state', 'paused')) : (lrc.style.setProperty('--state', 'running'), mplayer.style.setProperty('--state', 'running'));let showLrc = (time) => {let name = mFlag ? 'cover1' : 'cover2';lrc.innerHTML = data.lrcAr;lrc.dataset.lrc = data.lrcAr.replace(/<br>/, '\n');lrc.style.setProperty('--motion', name);lrc.style.setProperty('--tt', time + 's');lrc.style.setProperty('--state', 'running');mKey += 1;mFlag = !mFlag;};let calcKey = () => {for (j = 0; j < data.lrcAr.length; j++) {if (aud.currentTime <= data.lrcAr) {mKey = j - 1;break;}}if (mKey < 0) mKey = 0;if (mKey > data.lrcAr.length - 1) mKey = data.lrcAr.length - 1;let time = data.lrcAr - (aud.currentTime - data.lrcAr);showLrc(time);};};mkPlayer.HCPlayer = playCode;})(this);
        let lrcAr = [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,];
        HCPlayer({
                lrcAr: lrcAr,
                player_css: '--ww: 300px; --hh:100px; left: 40px; bottom: 90px;',
                lrc_css: '--bg: linear-gradient(180deg,hsla(200,100%,50%,.35),hsla(260,100%,50%,.65)); color: lightblue; top: 10px;',
                angle: -180,
        });
        Array.from({length: 15}).forEach((e) => {
                e = document.createElement('img');
                e.className = 'hudie';
                e.src = 'https://638183.freep.cn/638183/t22/gif/hudie.gif';
                e.alt = '';
                e.style.cssText += `
                        width: ${Math.random()*50+50}px;
                        left: ${Math.random()*90}%;
                        top:${Math.random()*90}%;
                        transform: rotateY(${Math.random()*70}deg) rotateZ(${Math.random()*360}deg) rotateX(${Math.random()* 70}deg);
                `;
                papa.appendChild(e);
        });
})();
</script>

亦是金 发表于 2022-12-28 09:20

黑黑老师厉害!又一种半圆频谱!{:4_178:}

醉美水芙蓉 发表于 2022-12-28 11:46

马黑黑 发表于 2022-12-28 11:51

亦是金 发表于 2022-12-28 09:20
黑黑老师厉害!又一种半圆频谱!

这个只需改一个角度,核心不变

马黑黑 发表于 2022-12-28 11:52

醉美水芙蓉 发表于 2022-12-28 11:46
欣赏黑黑老师精美音画!

感谢支持

小辣椒 发表于 2022-12-28 13:22

频谱播放器,先欣赏,黑黑最近身体好吧,别太累。我暂时玩不了。。。。

小辣椒 发表于 2022-12-28 13:25

黑黑这个频谱也是做了封装吧,我都回家好久没有玩了

梦油 发表于 2022-12-28 14:55

外行看热闹——美!

红影 发表于 2022-12-28 17:58

这半圆的缺口想留哪就留哪,黑黑厉害{:4_187:}

马黑黑 发表于 2022-12-28 18:09

红影 发表于 2022-12-28 17:58
这半圆的缺口想留哪就留哪,黑黑厉害

简单的

马黑黑 发表于 2022-12-28 18:10

小辣椒 发表于 2022-12-28 13:22
频谱播放器,先欣赏,黑黑最近身体好吧,别太累。我暂时玩不了。。。。

到目前止,羊羊不喜欢俺{:4_170:}

马黑黑 发表于 2022-12-28 18:10

小辣椒 发表于 2022-12-28 13:25
黑黑这个频谱也是做了封装吧,我都回家好久没有玩了

不急,小羊羊走了再说哈

马黑黑 发表于 2022-12-28 18:11

梦油 发表于 2022-12-28 14:55
外行看热闹——美!

海蝴蝶本身因为发光,很美的

红影 发表于 2022-12-28 21:41

马黑黑 发表于 2022-12-28 18:09
简单的

难者不会,会者不难{:4_187:}

马黑黑 发表于 2022-12-28 21:45

红影 发表于 2022-12-28 21:41
难者不会,会者不难

这个呢,和圆形道理一样,所以我说简单

红影 发表于 2022-12-28 21:49

马黑黑 发表于 2022-12-28 21:45
这个呢,和圆形道理一样,所以我说简单

就算效果实现不难,弄这么多蝴蝶也不容易啊{:4_173:}

马黑黑 发表于 2022-12-28 21:51

红影 发表于 2022-12-28 21:49
就算效果实现不难,弄这么多蝴蝶也不容易啊

蝴蝶就更简单了

梦油 发表于 2022-12-29 14:10

马黑黑 发表于 2022-12-28 18:11
海蝴蝶本身因为发光,很美的

精美的制作!

马黑黑 发表于 2022-12-29 17:41

梦油 发表于 2022-12-29 14:10
精美的制作!

制作一般了

红影 发表于 2022-12-29 19:50

马黑黑 发表于 2022-12-28 21:51
蝴蝶就更简单了

反正对你都简单{:4_173:}
页: [1] 2 3
查看完整版本: 海蝴蝶