马黑黑 发表于 2022-12-16 21:40

<style>
#papa { margin: auto; width: 760px; height: 460px; background: gray url('https://638183.freep.cn/638183/t22/hl/mist.jpg') no-repeat center/cover; box-shadow: 3px 3px 20px #000; display: grid; place-items: center; position: relative; }
#papa::before { position: absolute; content: 'Mist'; font: bold 3em sans-serif; left: 30px; top: 15px; color: #57535e; text-shadow: 2px 2px 12px snow;}
</style>

<div id="papa">
        <img src="https://638183.freep.cn/638183/t22/gif/sss.gif" alt="" onmouseover="javascript: this.src='https://638183.freep.cn/638183/t22/gif/sss.gif'" style="transform: translateY(100px);cursor: pointer;" />
</div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=1381745587.mp3" autoplay loop></audio>

<script>
(function() {
        (function(mkPlayer) {let defaults = {ypData: new Array(600).fill(0).map((v, k) => Math.floor(Math.random() * 200) + 10),player_css: 'bottom: 15px; left: 50%; transform: translate(-50%); ',playerCode: `<style>#mplayer { --color1: red; --color2: pink; --ww: 200; --hh: 80; position: absolute; cursor: pointer; }</style><canvas id="mplayer"></canvas>`,};let playCode = (user_config) => {let data = Object.assign({}, defaults, user_config);papa.innerHTML += data.playerCode;mplayer.style.cssText += data.player_css;let ctx = mplayer.getContext('2d');let getCssVal = (e,v) => getComputedStyle(e).getPropertyValue(v);let w = mplayer.width = getCssVal(mplayer,'--ww').replace(/[^0-9]/ig,''), h = mplayer.height = getCssVal(mplayer,'--hh').replace(/[^0-9]/ig,''), idx = 0;let slice = w / data.ypData.length, vmax = Math.max.apply(null, data.ypData);mplayer.onmousemove = (e) => { mplayer.title = e.offsetY < h * 0.8 ? toMin(aud.duration * e.offsetX / w) : '暂停/播放'; };mplayer.onclick = (e) => {if(e.offsetY < h * 0.8) {let ac = aud.duration * e.offsetX / w;idx = Math.round(data.ypData.length * ac / aud.duration);aud.currentTime = ac;} else {aud.paused ? aud.play() : aud.pause();}};aud.addEventListener('timeupdate', () => {idx = Math.round(data.ypData.length * aud.currentTime / aud.duration);if(idx > data.ypData.length - 1) idx = data.ypData.length - 1;draw();});let draw = () => {ctx.clearRect(0,0,w,h);ctx.strokeStyle = getCssVal(mplayer,'--color1');ctx.fillStyle = getCssVal(mplayer,'--color2');ctx.font = '14px sans-serif';ctx.shadowOffsetX = ctx.shadowOffsetY = 1;ctx.shadowBlur = 2;ctx.shadowColor = '#555';ctx.textAlign = 'center';ctx.beginPath();for(j = 0; j <= idx; j ++) {ctx.lineTo(slice*j, h - data.ypData * h / vmax);}ctx.stroke();ctx.beginPath();ctx.strokeStyle = getCssVal(mplayer,'--color2');for(j = idx; j < data.ypData.length; j ++) {ctx.lineTo(slice*j, h - data.ypData * h / vmax);}ctx.stroke();ctx.fillText((aud.paused ? '播放 ' : '暂停 ') + toMin(aud.currentTime) + ' / ' + toMin(aud.duration), w/2, h*0.95);};let toMin = (val) => {if (!val) return '00:00';val = Math.floor(val);let min = parseInt(val / 60), sec = parseFloat(val % 60);if (min < 10) min = '0' + min;if (sec < 10) sec = '0' + sec;return min + ':' + sec;};draw();};mkPlayer.HCPlayer = playCode;})(this);
        ypData = ;
        HCPlayer({
                ypData: ypData,
                player_css: '--color1: purple; --color2: snow; --ww: 280px; --hh: 80px; left: calc(50% - 140px); bottom: 20px; ',
        });
})();
</script>

马黑黑 发表于 2022-12-16 21:41

鼠标移动桥上的大可爱有交互

马黑黑 发表于 2022-12-16 21:42

本帖使用测试中的示波播放器插件,详情请看

https://www.huachaowang.com/forum.php?mod=viewthread&tid=65318&extra=page%3D1

千羽 发表于 2022-12-16 22:20

那个笑眯眯的大可爱挺有意思{:4_173:}

千羽 发表于 2022-12-16 22:21

马黑黑 发表于 2022-12-16 21:41
鼠标移动桥上的大可爱有交互

嗯,试了,有趣{:4_181:}

小辣椒 发表于 2022-12-16 22:24

马黑黑 发表于 2022-12-16 21:41
鼠标移动桥上的大可爱有交互

啊~~~这个好玩,还带趣味性的{:4_178:}

小辣椒 发表于 2022-12-16 22:25

马黑黑 发表于 2022-12-16 21:42
本帖使用测试中的示波播放器插件,详情请看

https://www.huachaowang.com/forum.php?mod=viewthread&tid ...

有插件了,做起来会轻松一点了

红影 发表于 2022-12-16 22:26

好像每首曲子的示波都不一样的呢。嗯,鼠标上去,大可爱会摇头{:4_187:}

红影 发表于 2022-12-16 22:27

在雾中守护着桥么?此路是我开,要留下买路钱的节奏{:4_189:}

马黑黑 发表于 2022-12-16 22:35

红影 发表于 2022-12-16 22:27
在雾中守护着桥么?此路是我开,要留下买路钱的节奏

正是正是{:4_170:}

马黑黑 发表于 2022-12-16 22:35

红影 发表于 2022-12-16 22:26
好像每首曲子的示波都不一样的呢。嗯,鼠标上去,大可爱会摇头

当然不一样的。每支歌曲,都有自己独特的声音状况

马黑黑 发表于 2022-12-16 22:38

小辣椒 发表于 2022-12-16 22:25
有插件了,做起来会轻松一点了

那是自然

马黑黑 发表于 2022-12-16 22:39

小辣椒 发表于 2022-12-16 22:24
啊~~~这个好玩,还带趣味性的

看得出原理吗

马黑黑 发表于 2022-12-16 22:39

千羽 发表于 2022-12-16 22:21
嗯,试了,有趣

好玩吧

马黑黑 发表于 2022-12-16 22:44

千羽 发表于 2022-12-16 22:20
那个笑眯眯的大可爱挺有意思

给钱钱就让你过桥

红影 发表于 2022-12-16 23:16

马黑黑 发表于 2022-12-16 22:35
正是正是

笑嘻嘻的劫匪啊{:4_173:}

红影 发表于 2022-12-16 23:17

马黑黑 发表于 2022-12-16 22:35
当然不一样的。每支歌曲,都有自己独特的声音状况

是啊,前面这几个帖子的示波相差那么多。

马黑黑 发表于 2022-12-16 23:43

红影 发表于 2022-12-16 23:17
是啊,前面这几个帖子的示波相差那么多。

都会有差异的,很大

马黑黑 发表于 2022-12-16 23:43

红影 发表于 2022-12-16 23:16
笑嘻嘻的劫匪啊

有礼貌

梦油 发表于 2022-12-17 09:43

大可爱还会眨眼,是挺可爱的。
页: [1] 2 3 4 5
查看完整版本: