首先给大家推荐下这首歌,张家辉《线人》片尾插曲 —— 董妮的《每当变幻时》,特有感觉(电影也挺好看),哈哈哈,抛个链接
https://music.163.com/song?id=84176&userid=481599787
接下来步入正题,其实给网站加个音乐很简单的事情,一个audio标签就搞定了,为啥还要发个博客呢,主要因为:
1、网站文章列表是异步加载的,包含图片,加上带宽限制,若是直接上HTML audio,实测后,发现好几秒才能把歌曲加载完,文章列表偶尔加载超时,肯定不行的嘛!
2、为了提升访问友好度,总得放个播放按钮啥的吧
多不解释,直接上代码
HTML
- <li><a class="music-control"><span class="fa fa-music"></span></a></li>
- <audio src="" style="display: none;" controls loop="loop" id="back-music"></audio>
此处去掉了一些无关的class,这里将audio的src属性设置为空,就是为了不影响其他内容加载,点击播放的时候再赋值就OK啦
JS
- var music = $("#back-music")[0]
- var musicStatus = $(".music-control span")
- $(".music-control").click(function () {
- var that = $(this)
- if (music.readyState != 4){
- musicStatus.removeClass('fa-music')
- musicStatus.addClass('fa-spinner fa-spin')
-
- //就一首,直接写了,大家换成自己的即可
- music.src = "static/music/薰妮 - 每当变幻时.mp3"
- music.load() //audio重新加载
- return
- }else {
- //加载完毕为前提,切换暂停/播放
- if (music.paused){
- music.play()
- musicStatus.addClass('fa-spin')
- }else {
- music.pause()
- musicStatus.removeClass('fa-spin')
- }
- }
- })
- //事件监听一直失败,没反应,最后选了定时器
- var timer = setInterval(function () {
- //音频文件加载完毕
- if (music.readyState == 4){
- music.play()
- musicStatus.addClass('fa-music')
- musicStatus.removeClass('fa-spinner')
- clearInterval(timer)
- }
- },1000)
很简单(我都觉得没有写博客的必要了。。。),大家直接点击导航栏music按钮预览就行!