大漠西风
<style>#papa { margin: 0 0 0 calc(50% - 593px); width: 1024px; height: 640px; background: darkgray url('https://638183.freep.cn/638183/t22/webp/dmxf1.webp') no-repeat center/cover; box-shadow: 4px 8px 16px #000; display: grid; place-items: center; perspective: 1000px; opacity: .95; position: relative; z-index: 1; }
#papa::before { position: absolute;content: ''; bottom: 60px; width: 120px; height: 140px; background: url('https://638183.freep.cn/638183/t22/51/9.jpg') no-repeat center/cover; border-radius: 50%; transform-style: preserve-3d; transform: rotateY(15deg) rotateZ(-10deg); pointer-events: none; box-shadow: 2px 4px 8px #222; }
</style>
<div id="papa"></div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=1394994873.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: green;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; bottom: 90px;',
lrc_css: '--bg: linear-gradient(180deg,hsla(0,100%,50%,.35),hsla(120,100%,50%,.65)); color: lightblue; top: 10px;',
});
})();
</script>
羊群好像是洒在草原上的珍珠,多么美的一幅画卷啊! 梦油 发表于 2022-12-27 17:01
羊群好像是洒在草原上的珍珠,多么美的一幅画卷啊!
图片确实很唯美 醉美水芙蓉 发表于 2022-12-27 17:46
欣赏黑黑老师精彩制作!
半圆环频谱,还不错吧 半圆环频谱,赞!!!{:4_178:} 黑黑老师,频谱能做成纯跳动的彩球串吗?(不带长条尾巴){:4_191:} 亦是金 发表于 2022-12-27 18:25
黑黑老师,频谱能做成纯跳动的彩球串吗?(不带长条尾巴)
球串的话,用HTML常规元素做消耗很大,用画布做可以。这要重新设计,个人觉得算法会比较复杂。 亦是金 发表于 2022-12-27 18:20
半圆环频谱,赞!!!
它应该还可以转向,凹凸,左右,都可以,但要解决的问题是播放/暂停的点击区域,凹凸好办,左右频谱占位有所不同。 大漠西风,油彩涂抹。好一派秋意! 更有被阵法禅定的妖精{:4_189:} 樵歌 发表于 2022-12-27 20:43
大漠西风,油彩涂抹。好一派秋意!
挺不错的吧 樵歌 发表于 2022-12-27 20:45
更有被阵法禅定的妖精
这也看得出来{:5_117:} 半圆环,黑黑又带来新的效果{:4_187:} 那张小图,让自然风貌里带了人文气息,很赞{:4_187:} 红影 发表于 2022-12-27 22:12
半圆环,黑黑又带来新的效果
圆切一般而已,不新 红影 发表于 2022-12-27 22:12
那张小图,让自然风貌里带了人文气息,很赞
很配的吧 马黑黑 发表于 2022-12-27 19:15
球串的话,用HTML常规元素做消耗很大,用画布做可以。这要重新设计,个人觉得算法会比较复杂。
谢谢黑黑老师回复。我只是有这种想法,供你参考!{:4_191:} 亦是金 发表于 2022-12-28 09:30
谢谢黑黑老师回复。我只是有这种想法,供你参考!
有时间再考虑 漂亮{:4_199:}