马黑黑 发表于 2022-11-17 07:03

嫦娥奔月

本帖最后由 马黑黑 于 2022-11-17 07:09 编辑 <br /><br /><style>
#papa {
        margin: 0 0 0 calc(50% - 721px);
        width: 1280px;
        height: 800px;
        background: lightblue url('https://638183.freep.cn/638183/t22/webp/ieby.webp') no-repeat;
        box-shadow: 3px 3px 20px #000;
        display: grid;
        place-items: center;
        user-select: none;
        position: relative;
        z-index: 1;
}
#mplayer {
        position: absolute;
        display: grid;
        grid-template-areas:
                'cur btnplay dur'
                'prog prog prog';
        gap: 0 4px;
        place-items: end center;
        font-size: 14px;
        bottom: 20px;
}
#cur { grid-area: cur; color: purple; }
#dur { grid-area: dur; color: purple; }
#btnplay {
        grid-area: btnplay;
        display: grid;
        grid-auto-flow: column;
        place-items: end center;
        gap: 0 4px;
        height: 60px;
        cursor: pointer;
}
#btnplay > span {
        background: red;
        width: 2px;
        transition: .3s;
}
#prog {
        grid-area: prog;
        width: 300px;
        height: 16px;
        opacity: .65;
        cursor: pointer;
        position: relative;
}

</style>

<div id="papa">
        <div id="mplayer">
                <div id="cur">00:00</div>
                <div id="btnplay"></div>
                <div id="dur">00:00</div>
                <progress id="prog" max="100"></progress>
        </div>
        <audio id="aud" src="https://music.163.com/song/media/outer/url?id=1453325911.mp3" loop autoplay></audio>
        <img src="https://638183.freep.cn/638183/t22/gif/hudp.gif" alt="" style="position: absolute; width: 60px; top: 135px; left: 386px;" />
        <img src="https://638183.freep.cn/638183/t22/gif/hudp.gif" alt="" style="position: absolute; width: 100px; top: 250px; left: 620px; transform: rotate(-60deg);" />
        <img src="https://638183.freep.cn/638183/t22/gif/hudp.gif" alt="" style="position: absolute; width: 150px; top: 160px; right: 30px; transform: rotate(-35deg);" />
</div>

<script>
(function() {
        (function() {
                for(j=0; j<20; j++) {
                        let pinpu = document.createElement('span');
                        pinpu.className = 'pinpu';
                        pinpu.style.cssText += `height: ${Math.floor(Math.random()*50) + 10}px; background: #${Math.random().toString(16).substr(-6)};`;
                        btnplay.appendChild(pinpu);
                }
        })();
        btnplay.onclick = () => aud.paused ? aud.play() : aud.pause();
        prog.onclick = (e) => aud.currentTime = aud.duration * e.offsetX / prog.offsetWidth;
        aud.addEventListener('timeupdate', () => {
                prog.value = aud.currentTime / aud.duration * 100;
                cur.innerText = toMin(aud.currentTime);
                dur.innerText = toMin(aud.duration);
                setPinpu();
        });

        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;
        };

        let setPinpu = ()=> {
                let eles = document.querySelectorAll('.pinpu');
                eles.forEach((item) => item.style.height = `${Math.floor(Math.random()*50) + 10}px`);
        };
})();
</script>

马黑黑 发表于 2022-11-17 07:09

代码
<style>
#papa {
        margin: 0 0 0 calc(50% - 721px);
        width: 1280px;
        height: 800px;
        background: lightblue url('https://638183.freep.cn/638183/t22/webp/ieby.webp') no-repeat;
        box-shadow: 3px 3px 20px #000;
        display: grid;
        place-items: center;
        user-select: none;
        position: relative;
        z-index: 1;
}
#mplayer {
        position: absolute;
        display: grid;
        grid-template-areas:
                'cur btnplay dur'
                'prog prog prog';
        gap: 0 4px;
        place-items: end center;
        font-size: 14px;
        bottom: 20px;
}
#cur { grid-area: cur; color: purple; }
#dur { grid-area: dur; color: purple; }
#btnplay {
        grid-area: btnplay;
        display: grid;
        grid-auto-flow: column;
        place-items: end center;
        gap: 0 4px;
        height: 60px;
        cursor: pointer;
}
#btnplay > span {
        background: red;
        width: 2px;
        transition: .3s;
}
#prog {
        grid-area: prog;
        width: 300px;
        height: 16px;
        opacity: .65;
        cursor: pointer;
        position: relative;
}

</style>

<div id="papa">
        <div id="mplayer">
                <div id="cur">00:00</div>
                <div id="btnplay"></div>
                <div id="dur">00:00</div>
                <progress id="prog" max="100"></progress>
        </div>
        <audio id="aud" src="https://music.163.com/song/media/outer/url?id=1453325911.mp3" loop autoplay></audio>
        <img src="https://638183.freep.cn/638183/t22/gif/hudp.gif" alt="" style="position: absolute; width: 60px; top: 135px; left: 386px;" />
        <img src="https://638183.freep.cn/638183/t22/gif/hudp.gif" alt="" style="position: absolute; width: 100px; top: 250px; left: 620px; transform: rotate(-60deg);" />
        <img src="https://638183.freep.cn/638183/t22/gif/hudp.gif" alt="" style="position: absolute; width: 150px; top: 160px; right: 30px; transform: rotate(-35deg);" />
</div>

<script>
(function() {
        (function() {
                for(j=0; j<20; j++) {
                        let pinpu = document.createElement('span');
                        pinpu.className = 'pinpu';
                        pinpu.style.cssText += `height: ${Math.floor(Math.random()*50) + 10}px; background: #${Math.random().toString(16).substr(-6)};`;
                        btnplay.appendChild(pinpu);
                }
        })();
        btnplay.onclick = () => aud.paused ? aud.play() : aud.pause();
        prog.onclick = (e) => aud.currentTime = aud.duration * e.offsetX / prog.offsetWidth;
        aud.addEventListener('timeupdate', () => {
                prog.value = aud.currentTime / aud.duration * 100;
                cur.innerText = toMin(aud.currentTime);
                dur.innerText = toMin(aud.duration);
                setPinpu();
        });

        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;
        };

        let setPinpu = ()=> {
                let eles = document.querySelectorAll('.pinpu');
                eles.forEach((item) => item.style.height = `${Math.floor(Math.random()*50) + 10}px`);
        };
})();
</script>


梦油 发表于 2022-11-17 09:10

黑黑朋友为这件作品的配乐真是恰到好处、美不胜收。

红影 发表于 2022-11-17 09:45

还是头一次看黑黑做这种风格的帖子,仙袂飘飘,真是太美了{:4_199:}

红影 发表于 2022-11-17 09:53

三只小蝴蝶用得漂亮,和底图色彩十分协调。漂亮{:4_199:}

相约爱晚亭 发表于 2022-11-17 11:24

欣赏精美音画佳作!

醉美水芙蓉 发表于 2022-11-17 11:42

马黑黑 发表于 2022-11-17 11:54

醉美水芙蓉 发表于 2022-11-17 11:42
老师的作品真是太美了!

过奖,一般般

马黑黑 发表于 2022-11-17 11:54

梦油 发表于 2022-11-17 09:10
黑黑朋友为这件作品的配乐真是恰到好处、美不胜收。

还行的

马黑黑 发表于 2022-11-17 11:55

红影 发表于 2022-11-17 09:45
还是头一次看黑黑做这种风格的帖子,仙袂飘飘,真是太美了

这个简单的

马黑黑 发表于 2022-11-17 11:55

红影 发表于 2022-11-17 09:53
三只小蝴蝶用得漂亮,和底图色彩十分协调。漂亮

放大镜总是有用处的{:4_170:}

马黑黑 发表于 2022-11-17 11:55

相约爱晚亭 发表于 2022-11-17 11:24
欣赏精美音画佳作!

感谢支持

小辣椒 发表于 2022-11-17 13:05

这个漂亮,加的蝴蝶给画面增加了灵动感,音画就是加特效出来会特别美,这个老头 千羽应该会喜欢的了
@东篱闲人 @千羽

小辣椒 发表于 2022-11-17 13:06

谢谢黑黑的教程分享。。。。晚上回家早就做一个

红影 发表于 2022-11-17 13:48

马黑黑 发表于 2022-11-17 11:55
这个简单的

虽然样式简单,但是很漂亮{:4_199:}

红影 发表于 2022-11-17 13:48

马黑黑 发表于 2022-11-17 11:55
放大镜总是有用处的

蝴蝶是被放大镜给网来的{:4_173:}

梦油 发表于 2022-11-17 14:31

马黑黑 发表于 2022-11-17 11:54
还行的

很好,很好。

马黑黑 发表于 2022-11-17 17:51

梦油 发表于 2022-11-17 14:31
很好,很好。

{:4_181:}

马黑黑 发表于 2022-11-17 17:53

红影 发表于 2022-11-17 13:48
蝴蝶是被放大镜给网来的

差不多差不多

马黑黑 发表于 2022-11-17 17:53

红影 发表于 2022-11-17 13:48
虽然样式简单,但是很漂亮

没人说简单的就不能漂亮
页: [1] 2 3 4
查看完整版本: 嫦娥奔月