马黑黑 发表于 2022-7-12 12:57

<style>
#papa { left: -214px; width: 1024px; height: 630px; background: #333 url('/data/attachment/forum/202207/12/125409gh5clttt55r5tds5.jpg') no-repeat center/cover; box-shadow: 4px 4px 24px #000; position: relative; }
#papa input { border: none; outline: none; opacity: .75; cursor: pointer; }
#papa p { margin: 0; padding: 0; }
.playbox { position: absolute; left: 10px; bottom: 10px; padding: 10px; font: normal 1em sans-serif; color: #B8972B; background: rgba(255,255,255,.2); border-radius: 8px; backdrop-filter: blur(1px); overflow: hidden; box-shadow: 1px 1px 2px rgba(0,0,0,.15); z-index: 100; }
#btnplay { width: 30px; height: 30px; border-radius: 50%; }
#btnplay:hover { background: #aaa; color: #ff0000; }
#circle { left: 10px; top: 10px; width: 240px; height: 240px; border-radius: 50%; position: absolute; }
.star { position: absolute; width: 2px; height: 2px; background: #fff; }
@keyframes flash { to { opacity: 0; } }
</style>

<div id="papa">
        <div id="circle"></div>
        <div class="playbox">
                <p id="geci" style="font-size: 1.2em; text-shadow: 1px 1px 1px #222">LRC Loading ... </p>
                <p style="display: flex; align-items: center; gap: 4px; margin-top: 10px;">
                        <input id="btnplay" type="button" value=">" />
                        <input id="slider" type="range" min="0" max="100" value="0" />
                        <span id="per">0%</span>
                </p>
        </div>
</div>
<audio id="aud" src="https://music.163.com/song/media/outer/url?id=1396953271.mp3" autoplay="autoplay" loop="loop"></audio>

<script>

let slip = 0, idx = 0, total = 500, gap = 100;
let add = setInterval(addDot, gap), del;
let num = (min, max) => Math.floor(Math.random() * (max-min+1)) + min;
let lrcAr = [
        ['0.00','作曲:种旭、卢一酒'],
        ['0.36','作词:种旭'],
        ['0.67','编曲:黑薄荷乐队'],
        ['1.37','录音、混音、母带:卢一酒'],
        ['2.40','录音、后期场地:酒歌工作室'],
        ['3.32','吉他:卢一酒、种旭'],
        ['4.09','贝斯:陆昕'],
        ['4.91','鼓:石磊'],
        ['6.03','主唱:高伟'],
        ['14.10','今天的饭今天吃饱'],
        ['19.35','明天的事谁会知道'],
        ['24.50','心脏在跳像挂在墙上的表'],
        ['29.72','寂寞在一秒一秒'],
        ['35.14','这座城市的房子越盖越高'],
        ['39.72','但人与人之间的对话越来越少'],
        ['43.94','今夜的路太黑'],
        ['46.56','你又会想起谁'],
        ['49.23','今夜我不会睡'],
        ['51.76','你会不会来安慰'],
        ['54.46','今夜的路太黑'],
        ['56.93','你又会想起谁'],
        ['59.60','今夜我不会睡'],
        ['62.18','我需要你的安慰'],
        ['76.71','今天的酒今天喝掉'],
        ['81.87','昨天的仇不必再报'],
        ['86.99','时间就这样给了青春一刀'],
        ['92.34','谁还能面带微笑'],
        ['97.57','电话打给我的人越来越多'],
        ['102.06','但在乎我的朋友真的越来越少'],
        ['106.63','今夜的路太黑'],
        ['109.22','​你又会想起谁'],
        ['111.83','今夜我不会睡'],
        ['114.41','你会不会来安慰'],
        ['117.04','今夜的路太黑'],
        ['119.54','你又会想起谁'],
        ['122.13','今夜我不会睡'],
        ['124.77','我需要你的安慰'],
        ['139.38','别让我寂寞'],
        ['141.87','别让我想太多'],
        ['144.43','别让我在夜晚想找个人却找不到'],
        ['149.74','别让我寂寞'],
        ['152.34','别让我想太多'],
        ['154.97','别让我听着音乐整夜睡不着'],
        ['160.34','今夜的路太黑'],
        ['162.62','你又会想起谁'],
        ['165.30','今夜我不会睡'],
        ['167.89','你会不会来安慰'],
        ['170.54','今夜的路太黑'],
        ['173.08','你又会遇到谁'],
        ['175.72','今夜都不会睡'],
        ['178.30','我需要你的安慰']
];

slider.onmousedown = () => aud.pause();
slider.onchange = () => { aud.currentTime = slider.value * aud.duration / 100; aud.play(); }
btnplay.onclick = () => aud.paused ? aud.play() : aud.pause();
aud.addEventListener('playing', () => btnplay.value = '||');
aud.addEventListener('pause', () => btnplay.value = '>');

aud.addEventListener('timeupdate', () => {
        let prog = 100 * aud.currentTime / aud.duration;
        slider.value = prog;
        per.innerText = toMin(aud.currentTime) + ' | ' + toMin(aud.duration);
                for(j=0; j<lrcAr.length; j++){
                if(aud.currentTime >= lrcAr - slip){
                        geci.innerHTML = lrcAr;
                }
        }
});

let toMin = (val) => {
        if(!val) return '0:0';
        val = Math.floor(val);
        return parseInt(val / 60) + ':' +parseFloat(val % 60);
}

function addDot() {
        let ele = document.createElement('span');
        let ww = circle.offsetWidth / 2;
        ele.className = 'star';
        ele.style.animation = 'flash ' + 0.1 * num(10,50) + 's infinite';
        let pos = calcCirclePos({x: ww, y: ww, r: num(0,ww - 2), a: num(0,360)});
        ele.style.left = pos.xx + 'px';
        ele.style.top = pos.yy + 'px';
        circle.appendChild(ele);
        idx ++;
        if(idx >= total){
                clearInterval(add);
                idx = 0;
                del = setInterval(delDot, gap);
        }
}

function delDot() {
        let ele = document.querySelector('.star');
        if(ele) {
                circle.removeChild(ele);
        } else {
                clearInterval(del);
                add = setInterval(addDot,gap);
        }
}

function calcCirclePos({x,y,r,a}) {
        let xx = x + r * Math.cos((a * Math.PI) / 180);
        let yy = y + r * Math.sin((a * Math.PI) / 180);
        return {xx,yy};
}
</script>

大猫咪 发表于 2022-7-12 13:01

这样的夜真浪漫 {:4_189:}老黑昨天晚上梦见小芳了,相牵的似水流年,依旧清晰如昨,{:4_173:}

马黑黑 发表于 2022-7-12 13:03

大猫咪 发表于 2022-7-12 13:01
这样的夜真浪漫 老黑昨天晚上梦见小芳了,相牵的似水流年,依旧清晰如昨,

嗯,还真是。咋俺梦见啥,你都知道呢{:4_170:}

大猫咪 发表于 2022-7-12 13:05

马黑黑 发表于 2022-7-12 13:03
嗯,还真是。咋俺梦见啥,你都知道呢

猫回家的路上见到{:4_189:}天上星星都亮了   {:4_173:}

马黑黑 发表于 2022-7-12 13:07

大猫咪 发表于 2022-7-12 13:05
猫回家的路上见到天上星星都亮了

原理是星相学原理

大猫咪 发表于 2022-7-12 13:14

马黑黑 发表于 2022-7-12 13:07
原理是星相学原理

作为一种征兆向人们显示神的旨意{:4_170:}

马黑黑 发表于 2022-7-12 13:17

大猫咪 发表于 2022-7-12 13:14
作为一种征兆向人们显示神的旨意

说的有道理。空了俺也学学星斗知识

红影 发表于 2022-7-12 15:18

黑黑把圆周点设定和添加和减去小球的内容,都用在这个帖子的星星里了。这个还真的是在圆形区域里呢。
只是感觉不是全部星星出来后再灭掉,而是边生边灭,很有闪烁的感觉呢{:4_187:}

红影 发表于 2022-7-12 15:19

这么浪漫的场景,咋配了这样歇斯底里的歌曲{:4_173:}

马黑黑 发表于 2022-7-12 18:08

红影 发表于 2022-7-12 15:19
这么浪漫的场景,咋配了这样歇斯底里的歌曲

配的挺好的{:5_106:}

马黑黑 发表于 2022-7-12 18:14

红影 发表于 2022-7-12 15:18
黑黑把圆周点设定和添加和减去小球的内容,都用在这个帖子的星星里了。这个还真的是在圆形区域里呢。
只是 ...

出现完了才又陆续消失,当中,每一粒小星星拥有自己闪烁的keyframes动画,看上去好像消失过

红影 发表于 2022-7-12 20:16

马黑黑 发表于 2022-7-12 18:14
出现完了才又陆续消失,当中,每一粒小星星拥有自己闪烁的keyframes动画,看上去好像消失过

哦,是这样啊,效果很不错呢{:4_204:}

红影 发表于 2022-7-12 20:16

马黑黑 发表于 2022-7-12 18:08
配的挺好的

一点都不浪漫了啊{:4_173:}

马黑黑 发表于 2022-7-12 20:20

红影 发表于 2022-7-12 20:16
一点都不浪漫了啊

浪漫又不能当饭吃{:4_170:}

马黑黑 发表于 2022-7-12 20:21

红影 发表于 2022-7-12 20:16
哦,是这样啊,效果很不错呢

一般般,过得去

绿叶清舟 发表于 2022-7-12 20:40

今天的饭昨天吃饱了也没用啊

马黑黑 发表于 2022-7-12 20:55

绿叶清舟 发表于 2022-7-12 20:40
今天的饭昨天吃饱了也没用啊

那明天吃吧

绿叶清舟 发表于 2022-7-12 20:57

马黑黑 发表于 2022-7-12 20:55
那明天吃吧

那明天的饭咋办

马黑黑 发表于 2022-7-12 20:58

绿叶清舟 发表于 2022-7-12 20:57
那明天的饭咋办

后天吃,都往后挪

小辣椒 发表于 2022-7-12 20:58

黑黑,这个图图意境特别美{:4_199:}
页: [1] 2 3 4
查看完整版本: