前言
没有音乐页面怎么行,花里胡哨的都安排上,本来想摆烂直接上aplayer,但考虑到我不会写样式(虽然我可以自学) 所以我音乐页面用的是 Chuckle的方案
(等会为啥开头这么像 https://www.chuckle.top/article/3322c8a8.html)
原本我是想做 单页背景透明的,但我发现单页背景透明和我博客背景冲突导致丑的一批,所以我把背景换成了渐变动画
以下是我之前的音乐页面:
别问为啥是之前,这个音乐页面手机访问是这样的:
当时我还以为是浏览器的问题,立即换成了Chrome浏览器,结果:
(后来我用手机访问了那位大佬的音乐页面,也是一样出现这个问题,之前有人反映过这位大佬,大佬说自己去适配,但我懒得适配,于是就有了这个教程 )
教程
这个教程是我基于
但后面我发现这跟csdn里的
(希望csdn那篇文章的作者看完不会在意)
https://www.php.cn/xiazai/js/6169 做的适配butterfly主题的版本但后面我发现这跟csdn里的
https://blog.csdn.net/weixin_43151418/article/details/125351391 一模一样- 新建[Blogroot]\themes\butterfly\layout\includes\page\music.pug,内容如下:
COPY
link(rel='stylesheet' href='/css/musics.css')
.player
.player__header
.player__img.player__img--absolute.slider
button.player__button.player__button--absolute--nw.playlist
img(src='/svg/playlist.svg', alt='playlist-icon')
button.player__button.player__button--absolute--center.play
img(src='/svg/play.svg', alt='play-icon')
img(src='/svg/pause.svg', alt='pause-icon')
.slider__content
each item in theme.musicplayer.musics
img.img.slider__img(src=item.image, alt='cover')
.player__controls
button.player__button.back
img.img(src='/svg/back.svg', alt='back-icon')
p.player__context.slider__context
strong.slider__title
span.slider__name.player__title
button.player__button.next
img.img(src='/svg/next.svg', alt='next-icon')
.progres
.progres__filled
ul.player__playlist.list
each musics in theme.musicplayer.musics
li.player__song
img.player__img.img(src=musics.image, alt='cover')
p.player__context
b.player__song-name=musics.name
span.flex
span.player__title=musics.author
span.player__song-time
audio.audio(src=musics.url)
if theme.musicplayer.hitokoto
p#hitokoto
a#hitokoto_text(href="#",target="_blank") :D 获取中...
script(src='/js/player.js')
if theme.musicplayer.hitokoto
script.
fetch('https://v1.hitokoto.cn')
.then(response => response.json())
.then(data => {
const hitokoto = document.querySelector('#hitokoto_text')
hitokoto.href = `https://hitokoto.cn/?uuid=${data.uuid}`
hitokoto.innerText = data.hitokoto + " —— " + data.creator + "「" + data.from + "」"
})
.catch(console.error)- 在[blogroot]\themes\butterfly\source\css\目录下新建musics.css,内容如下:
COPY
| |
- 在[blogroot]\themes\butterfly\source\js\目录下新建player.js,内容如下:
COPY
| |
- 编辑[blogroot]\themes\butterfly\layout\page.pug
COPY
| |
- 编辑[blogroot]\themes\butterfly_config.yml,在末尾添加:
COPY
| |
- 将svg.7z压缩包里的五个文件放在[blogroot]\themes\butterfly\source\svg 里面 https://sinz.lanzouw.com/iFMmG0kjkuvg (密码:gt97)
- 运行
hexo new page music - 编辑[blogroot]\source\music\index.md,把里面的内容替换成:
COPY
| |
- 新建[Blogroot]\themes\butterfly\layout\includes\page\music.pug(有搞1.0的话直接把music.pug里面的内容全都替换成下面的内容),内容如下:
COPY
link(
href="/assets/css/tplayer.css"
rel="stylesheet"
type="text/css"
)
link(
href="/assets/plugins/FontAwesome4.1/css/font-awesome.min.css"
rel="stylesheet"
type="text/css"
)
script(src="/assets/js/jquery.js")
script(src="/assets/js/jquery-ui.js")
script(src="/assets/js/tPlayer.js")
#t_wrapper
#t_cover
img(src="/assets/images/logo.png")
#t_top
#t_title_info
span.artist
span.title
#t_middle
#play
#pause.hidden
#t_progress.ui-corner-all.ui-slider.ui-slider-horizontal.ui-widget.ui-widget-content
#trackInfo
#error
#current 0:00
#duration 0:00
.ui-corner-all.ui-slider-range.ui-slider-range-min.ui-widget-header(style="width: 0%;")
span.ui-corner-all.ui-slider-handle.ui-state-default(style="left: 0%;" tabindex="0")
span#prev
span#next
#t_bottom
#range
#val
#vol
#rangeVal
#t_pls_show.noselectpls
#playlist
ul
each musics in theme.musicplayer.musics
li(
t_artist=musics.author
t_cover=musics.image
t_name=musics.name
)
a(href="#")=musics.name + ' - ' + musics.author
audio(preload="none" src=musics.url type="audio/mp3")
if theme.musicplayer.hitokoto
p#hitokoto
a#hitokoto_text(href="#",target="_blank",style="text-align:center;color: #fff;") :D 获取中...
if theme.musicplayer.hitokoto
script.
fetch('https://v1.hitokoto.cn')
.then(response => response.json())
.then(data => {
const hitokoto = document.querySelector('#hitokoto_text')
hitokoto.href = `https://hitokoto.cn/?uuid=${data.uuid}`
hitokoto.innerText = data.hitokoto + " —— " + data.creator + "「" + data.from + "」"
})
.catch(console.error)- 将下面压缩包内五个文件夹全都解压在[blogroot]\themes\butterfly\source\assets 文件夹里面 https://sinz.lanzouw.com/iUJTx0krafpi (密码:3r5i)
::: info
1.0想升级成2.0的,下面的步骤可以不用做
:::
- 编辑[blogroot]\themes\butterfly_config.yml,在末尾添加:
COPY
| |
- 运行
hexo new page music - 编辑[blogroot]\source\music\index.md,把里面的内容替换成:
COPY
| |

评论