WordPress自带的,或者说Html5自带的播放控件相对来说比较简单,缺少一些个性化,所以就有了重新做一个相对好看一点的播放器模块,在文章或页面插入,经过不断的改进以及ai的帮助,目前该播放器已经比较符合我的使用习惯了。
- 网页端和移动端适配性较强,基本不会出现控件挤在一起的情况
- 模块背景可以使用封面以增加一体性或者自选图片
- 歌曲作者可以点击达到创作者主页
- 封面悬停效果以及播放是动效、光效
- 模块阴影优化使其更具现代化
示例:友人帐 – Makoto(使用时请自行替换内容)
<div class="music-player-container"> <!-- 音乐播放器区域 --> <div class="music-player"> <div class="cover"> <img id="coverImg" src="https://www.ylk.ink/wp-content/uploads/2025/02/1739348754-Cover.jpg" alt="瑠璃色の夜へ 封面"> </div> <div class="content"> <div class="info"> <div class="title">瑠璃色の夜へ</div> <p class="artist"> <a href="https://akinanakamoriofficial.com/" target="_blank" class="artist-link">中森明菜</a> </p> </div> <!-- HTML5 原生音频控件 --> <div class="audio-wrapper"> <audio controls id="audioPlayer"> <source src="https://www.ylk.ink/wp-content/uploads/2025/02/1739348801-瑠璃色の夜へ-中森明菜.mp3" type="audio/mpeg"> 您的浏览器不支持音频播放。 </audio> </div> </div> </div> </div> <style> /* 播放器整体美化 */ .music-player-container { display: flex; flex-direction: column; align-items: center; gap: 20px; background: url('https://www.ylk.ink/wp-content/uploads/2025/02/1739348754-Cover.jpg') no-repeat center center; background-size: cover; border-radius: 15px; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3); /* 现代化阴影 */ padding: 25px; max-width: 850px; margin: 20px auto; position: relative; overflow: hidden; animation: glowEffect 4s infinite alternate; } /* 轻微光效 */ @keyframes glowEffect { from { box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3); } to { box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4); } } /* 遮罩层增强可读性 */ .music-player-container::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.3)); border-radius: 15px; z-index: 1; pointer-events: none; } .music-player { display: flex; align-items: center; flex-wrap: wrap; position: relative; z-index: 2; width: 100%; } /* 封面动效 */ .music-player .cover img { width: 120px; height: 120px; border-radius: 12px; transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out; } /* 悬停封面浮起 */ .music-player .cover img:hover { transform: scale(1.05); box-shadow: 0 5px 10px rgba(255, 255, 255, 0.3); } /* 播放时封面缩放 */ .playing { transform: scale(1.1) !important; box-shadow: 0 8px 16px rgba(255, 255, 255, 0.5); } /* 内容区域 */ .music-player .content { flex: 1; margin-left: 20px; } .music-player .info .title { font-size: 20px; margin: 0 0 5px 0; color: #fff; font-weight: bold; } .music-player .info .artist { font-size: 14px; color: #f5f5f5; margin: 0; } .music-player .info .artist a { color: #f5f5f5; text-decoration: none; font-weight: normal; } .music-player .info .artist a:hover { text-decoration: underline; } /* 音频控件容器 */ .audio-wrapper { width: 100%; display: flex; justify-content: center; margin-top: 10px; } /* 音频控件 */ audio { display: block; width: 100%; max-width: 600px; height: 32px; background: transparent; border-radius: 8px; /* 圆角 */ opacity: 0.9; transition: opacity 0.3s ease-in-out, box-shadow 0.3s ease-in-out; } /* 播放时音频控件增强 */ audio:focus, audio:hover { opacity: 1; box-shadow: 0 4px 8px rgba(255, 255, 255, 0.3); } /* 移动端优化 */ @media (max-width: 600px) { .music-player { flex-direction: column; align-items: center; text-align: center; } .music-player .cover img { width: 100px; height: 100px; } .music-player .content { margin-left: 0; width: 100%; } .audio-wrapper { width: 100%; margin-top: 15px; } audio { width: 100%; max-width: none; } } </style> <script> const audio = document.getElementById('audioPlayer'); const coverImg = document.getElementById('coverImg'); // 监听音频播放状态 audio.addEventListener('play', () => { coverImg.classList.add('playing'); }); audio.addEventListener('pause', () => { coverImg.classList.remove('playing'); }); audio.addEventListener('ended', () => { coverImg.classList.remove('playing'); }); </script>
Comments 4 条评论
我虽然自己对音乐也有一些兴趣和喜好,但是不打算在自己博客上放音乐,主要是我的音频文件可能都会大一些,动辄几十上百 MB,甚至有一个文件上 GB 的。
看了你页面后我在想,我这个透明 背景的 Logo 是不是又该调整一下了?之前其实是考虑可能有人的网页上有不同底色,就做透明背景的。但是看来深色背景下它不大能看出来什么了。
@Vind 我不认为博客网站上需要那么高音质的文件,logo的问题可以尝试添加轮廓解决
哇塞,之前找了好久没找到,现在终于找到啦,虽然我现在不打算用了,还是感谢!
@Tom 没什么,能帮到你就行