每个人都能制作的简易版QQ音乐(HTML+CSS+JQuery)

每个人都能制作的简易版QQ音乐(HTML+CSS+JQuery)

自制系列二它来了。

如果在制作过程中有如何问题你都可以私信我,我会答复你的。

今天中秋节,首先祝大家中秋节快乐!

因为没什么礼物送给大家,所以在这里给大家安利一份简易版QQ音乐的制作,过程很简单,每个人都能学会。

下面将是制作步骤了:

先建好目录如下:

source文件夹里存放如下:

下面就是把代码复制到相应的目录中:

QQ音乐播放器.html

  • 登录
  • 设置

收藏

添加到

下载

删除

清空列表

  • 歌曲

    歌手

    时长

歌曲名称:

后来

歌手名:

刘若英

专辑名:

我等你

  • 第一条歌词
  • 第二条歌词

1.css

*{

margin: 0;

padding: 0;

}

html,body{

width: 100%;

height: 100%;

font-size: 14px;

}

.header{

width: 100%;

height: 45px;

/* background: red; */

}

.header .logo{

float: left;

margin-top: 5px;

margin-left: 20px;

opacity: 0.5;

}

.header .logo:hover{

opacity: 1;

}

.header .logo a{

display: inline-block;

width: 115px;

height: 37px;

background: url("../img/logo.png") no-repeat 0 0;

}

.header .register{

float: right;

line-height: 45px;

}

.header .register li{

list-style: none;

float: left;

margin-right: 20px;

color: #fff;

opacity: 0.5;

}

.header .register li:hover{

opacity: 1;

}

.content{

width: 100%;

height: 620px;

/* background: blue; */

}

.content .content_in{

width: 1200px;

height: 100%;

/* background: deeppink; */

margin: 0 auto;

}

.content_in .content_left{

float: left;

width: 800px;

height: 100%;

/* background: pink; */

}

.content_left .content_toolbar{

width: 100%;

height: 40px;

/* background: #000; */

}

.content_toolbar span{

display: inline-block;

width: 122px;

height: 100%;

line-height: 40px;

text-align: center;

border: 1px solid #fff;

box-sizing: border-box;

border-radius: 5px;

color: #fff;

opacity: 0.5;

}

.content_toolbar span i{

display: inline-block;

width: 18px;

height: 18px;

background: red no-repeat 0 0;

margin-right: 10px;

vertical-align: -5px;

}

.content_toolbar span:nth-child(1){

background-position: -60px -20px;

}

.content_toolbar span:nth-child(2){

background-position: -20px -20px;

}

.content_toolbar span:nth-child(3){

background-position: -40px -240px;

}

.content_toolbar span:nth-child(4){

background-position: -100px -20px;

}

.content_toolbar span:nth-child(5){

background-position: -40px -300px;

}

.content_toolbar span i:hover{

opacity: 1;

}

.content_left .content_list{

width: 100%;

height: 420px;

/* background: purple; */

overflow: auto;

}

.content_list li{

list-style: none;

width: 100%;

height: 50px;

/* background: orangered; */

border-bottom: 1px solid rgba(255,255,255,0.5);

box-sizing: border-box;

user-select: none;

}

.content_list li div{

float: left;

color: rgba(255,255,255,0.5);

line-height: 50px;

/* opacity: 0.5; */

}

.content_list .list_check{

width: 50px;

height: 100%;

/* background: #000; */

text-align: center;

}

.content_list .list_check i{

display: inline-block;

width: 14px;

height: 14px;

border: 1px solid #fff;

opacity: 0.5;

}

.content_list .list_checked i{

background: red no-repeat -60px -80px;

opacity: 1;

}

.content_list .list_number{

width: 20px;

height: 100%;

/* background: green; */

}

.content_list .list_number2{

color: transparent !important;

background: deeppink no-repeat 0 center;

}

.content_list .list_name{

width: 50%;

height: 100%;

/* background: #ccc; */

}

.list_name .list_meau{

margin-top: 5px;

float: right;

margin-right: 20px;

display: none;

}

.list_meau a{

display: inline-block;

width: 36px;

height: 36px;

background: red no-repeat 0 0;

opacity: 0.5;

}

.list_meau a:hover{

opacity: 1;

}

.list_meau a:nth-child(1){

background-position: -120px 0;

}

.list_meau a:nth-child(2){

background-position: -120px -80px;

}

.list_meau a:nth-child(3){

background-position: -120px -120px;

}

.list_meau a:nth-child(4){

background-position: -120px -40px;

}

.list_meau .list_meau_play2{

background-position: -80px -200px !important;

}

.content_list .list_singer{

width: 20%;

height: 100%;

/* background: pink; */

}

.content_list .list_time a{

display: inline-block;

width: 36px;

height: 36px;

background: red no-repeat -120px -160px;

float: left;

margin-top: 5px;

display: none;

opacity: 0.5;

}

.content_list .list_time a:hover{

opacity: 1;

}

.content_in .content_right{

float: right;

width: 400px;

height: 100%;

user-select: none;

/* background: #ccc; */

}

.content_right .song_info{

text-align: center;

color: rgba(255,255,255,0.5);

line-height: 30px;

}

.song_info .song_info_pic{

display: inline-block;

background: red no-repeat 0 0;

width: 201px;

height: 180px;

text-align: left;

}

/* .song_info_pic img{

width: 180px;

height: 180px;

} */

.song_info div a{

text-decoration: none;

color: #fff;

opacity: 0.5;

}

.song_info div a:hover{

opacity: 1;

}

.content_right .song_lyric{

/* background: green; */

text-align: center;

margin-top: 30px;

}

.content_right .song_lyric li{

list-style: none;

line-height: 30px;

font-weight: bold;

color: rgba(255,255,255,0.5);

}

.content_right .song_lyric .cur{

color: #31c27c;

}

.footer{

width: 100%;

height: 60px;

/* background: deeppink; */

position: absolute;

left: 0;

bottom: 0;

}

.footer .footer_in{

width: 1200px;

height: 100%;

/* background: plum; */

margin: 0 auto;

user-select: none;

}

.footer_in a{

display: inline-block;

text-decoration: none;

color: #fff;

background: red no-repeat 0 0;

margin-left: 20px;

}

.footer_in .music_pre{

width: 19px;

height: 20px;

background-position: 0 -30px;

}

.footer_in .music_play{

width: 19px;

height: 20px;

background-position: 0 0;

}

.footer_in .music_play2{

width: 29px;

height: 30px;

background-position: -30px 0;

}

.footer_in .music_next{

width: 19px;

height: 20px;

background-position: 0 -52px;

}

.footer_in .music_progress_info{

display: inline-block;

width: 670px;

height: 40px;

background: green;

position: relative;

top: 10px;

}

.music_progress_info .music_progress_top{

width: 100%;

height: 30px;

line-height: 30px;

/* background: #000; */

color: #fff;

}

.music_progress_top .music_progress_name{

float: left;

opacity: 0.5;

}

.music_progress_top .music_progress_name:hover{

opacity: 1;

}

.music_progress_top .music_progress_time{

float: right;

opacity: 0.5;

}

.music_progress_info .music_progress_bar{

width: 100%;

height: 4px;

background: rgba(255,255,255,0.5);

margin-top: 5px;

position: relative;

}

.music_progress_bar .music_progress_line{

width: 0;

height: 100%;

background: #fff;

}

.music_progress_line .music_progress_dot{

width: 14px;

height: 14px;

border-radius: 50%;

background: #fff;

position: absolute;

top: -5px;

left: 0;

}

.footer_in .music_mode{

width: 19px;

height: 20px;

background-position: 0 -205px;

}

.footer_in .music_mode2{

width: 24px;

height: 25px;

background-position: 0 -260px;

}

.footer_in .music_mode3{

width: 29px;

height: 30px;

background-position: 0 -74px;

}

.footer_in .music_mode4{

width: 34px;

height: 35px;

background-position: 0 -232px;

}

.footer_in .music_fav{

width: 19px;

height: 20px;

background-position: 0 -96px;

}

.footer_in .music_fav2{

width: 29px;

height: 30px;

background-position: -30px -96px;

}

.footer_in .music_down{

width: 19px;

height: 20px;

background-position: 0 -120px;

}

.footer_in .music_comment{

width: 19px;

height: 20px;

background-position: 0 -400px;

}

.footer_in .music_only{

width: 19px;

height: 20px;

background-position: 0 -281px;

}

.footer_in .music_only2{

width: 29px;

height: 30px;

background-position: 0 -310px;

}

.footer_in .music_voice_info{

display: inline-block;

width: 100px;

height: 40px;

/* background: green; */

position: relative;

top: 10px;

}

.music_voice_info .music_voice_icon{

width: 19px;

height: 20px;

background-position: 0 -144px;

position: absolute;

left: 0;

top: 10px;

}

.music_voice_info .music_voice_icon2{

width: 19px;

height: 30px;

background-position: 0 -182px;

}

.music_voice_info .music_voice_bar{

width: 60px;

height: 4px;

background: rgba(255,255,255,0.5);

position: absolute;

right: 0;

top: 18px;

}

.music_voice_bar .music_voice_line{

width: 60px;

height: 100%;

background: #fff;

}

.music_voice_line .music_voice_dot{

width: 14px;

height: 14px;

border-radius: 50%;

background: #fff;

position: relative;

top: -5px;

left: 60px;

}

.mask_bg{

position: absolute;

left: 0;

top: 0;

z-index: -2;

width: 100%;

height: 100%;

background: url("../img/lnj.png") no-repeat 0 0;

background-size: cover;

filter: blur(100px);

}

.mask{

position: absolute;

left: 0;

top: 0;

z-index: -1;

width: 100%;

height: 100%;

background: rgba(0,0,0,0.35);

}

._mCS_1 .mCSB_scrollTools .mCSB_dragger_bar{

width: 8px;

}

1.js

$(function(){

//自定义滚动条

$(".content_list").mCustomScrollbar();

var audios = $("audio");

var player = new Player(audios);

var progress;

var voiceProgress;

//加载歌曲

getPlayerList();

function getPlayerList(){

$.ajax({

url: "./source/musiclist.json",

dataType: "json",

success: function(data){

// console.log(data);

var musicList = $(".content_list ul");

player.musicList = data;

$.each(data,function(index,ele){

var item = createMusicItem(index,ele);

musicList.append(item);

});

initMusicInfo(data[0]);

// initMusicLyric(data[0]);

},

error: function(e){

console.log(e);

}

});

}

//初始化歌曲信息

function initMusicInfo(music){

//获取对应的元素

var musicImage = $(".song_info_pic img");

var musicName = $(".song_info_name a");

var musicSinger = $(".song_info_singer a");

var musicAblum = $(".song_info_ablum a");

var musicProgressName = $(".music_progress_name");

var musicProgressTime = $(".music_progress_time");

var musicBg = $(".mask_bg");

//给元素赋值

musicImage.attr("src",music.cover);

musicName.text(music.name);

musicSinger.text(music.singer);

musicAblum.text(music.album);

musicProgressName.text(music.name +" / "+music.singer);

musicProgressTime.text("00:00 / "+music.time);

musicBg.css("background","url('"+music.cover+"')");

}

//初始化歌词信息

// function initMusicLyric(music){

// var lyric = new Lyric(music.link_lrc);

// lyric.loadLyric();

// }

//初始化进度条

initProgress();

function initProgress(){

var progressBar = $(".music_progress_bar");

var progressLine = $(".music_progress_line");

var progressDot = $(".music_progress_dot");

progress = Progress(progressBar,progressLine,progressDot);

progress.progressClick(function(value){

player.musicSeekTo(value);

});

progress.progressMove(function(value){

player.musicSeekTo(value);

});

var voiceBar = $(".music_voice_bar");

var voiceLine = $(".music_voice_line");

var voiceDot = $(".music_voice_dot");

voiceProgress = Progress(voiceBar,voiceLine,voiceDot);

voiceProgress.progressClick(function(value){

player.musicVoiceSeekTo(value);

});

voiceProgress.progressMove(function(value){

player.musicVoiceSeekTo(value);

});

}

//初始化事件监听

initEvents();

function initEvents(){

//监听歌曲移入移出

$(".content_list").delegate(".list_music","mouseenter",function(){

//显示子菜单

$(this).find(".list_meau").stop().fadeIn(100);

$(this).find(".list_time a").stop().fadeIn(100);

//隐藏时长

$(this).find(".list_time span").stop().fadeOut(100);

});

$(".content_list").delegate(".list_music","mouseleave",function(){

//隐藏子菜单

$(this).find(".list_meau").stop().fadeOut(100);

$(this).find(".list_time a").stop().fadeOut(100);

//显示时长

$(this).find(".list_time span").stop().fadeIn(100);

});

//监听复选框的点击

$(".content_list").delegate(".list_check","click",function(){

$(this).toggleClass("list_checked");

});

//添加子菜单播放按钮

var musicPlay = $(".music_play");

$(".content_list").delegate(".list_meau_play","click",function(){

var item = $(this).parents(".list_music");

// console.log(item.get(0).index);

// console.log(item.get(0).music);

//切换播放图标

$(this).toggleClass("list_meau_play2");

//复原其他播放图标

item.siblings().find(".list_meau_play").removeClass("list_meau_play2");

if($(this).attr("class").indexOf("list_meau_play2") != -1){

//当前子菜单播放按钮是播放状态

musicPlay.addClass("music_play2");

//让文字高亮

item.find("div").css("color","#fff");

item.siblings().find("div").css("color","rgba(255,255,255,0.5)");

}else{

//当前子菜单播放按钮不是播放状态

musicPlay.removeClass("music_play2");

//让文字不高亮

item.find("div").css("color","rgba(255,255,255,0.5)");

}

// musicPlay.toggleClass("music_play2");

//切换序号状态

item.find(".list_number").toggleClass("list_number2");

item.siblings().find(".list_number").removeClass("list_number2");

//播放音乐

player.playMusic(item.get(0).index,item.get(0).music);

//切换歌曲信息

initMusicInfo(item.get(0).music);

});

//监听底部播放按钮的点击

musicPlay.click(function(){

//判断有没有播放过音乐

if(player.currentIndex == -1){

//没有播放

$(".list_music").eq(0).find(".list_meau_play").trigger("click");

}else{

//播放过

$(".list_music").eq(player.currentIndex).find(".list_meau_play").trigger("click");

}

});

//监听底部上一首按钮的点击

$(".music_pre").click(function(){

$(".list_music").eq(player.preIndex()).find(".list_meau_play").trigger("click");

});

//监听底部下一首按钮的点击

$(".music_next").click(function(){

$(".list_music").eq(player.nextIndex()).find(".list_meau_play").trigger("click");

});

//监听删除按钮点击

$(".content_list").delegate(".list_meau_del","click",function(){

//找到被点击的音乐

var item = $(this).parents(".list_music");

//判断当前删除的音乐是否在播放

if(item.get(0).index == player.currentIndex){

$(".music_next").trigger("click");

}

item.remove();

player.changeMusic(item.get(0).index);

//重新排序

$(".list_music").each(function(index,ele){

ele.index = index;

$(ele).find(".list_number").text(index + 1);

});

});

//监听播放进度

player.musicTimeUpdate(function(currentTime,duration,timeStr){

//同步时间

$(".music_progress_time").text(timeStr);

//同步进度条

//计算播放比例

var value = currentTime / duration * 100;

progress.setProgress(value);

});

//监听声音按钮的点击

$(".music_voice_icon").click(function(){

//图标切换

$(this).toggleClass("music_voice_icon2");

//声音切换

if($(this).attr("class").indexOf("music_voice_icon2") != -1){

//变为没有声音

player.musicVoiceSeekTo(0);

}else{

//变为有声音

player.musicVoiceSeekTo(1);

}

});

}

//定义一个方法创建一条音乐

function createMusicItem(index,music){

var item = $("

  • "+

    "

    "+

    "

    "+(index+1)+"
    "+

    "

    "+music.name+""+

    "

    "+

    ""+

    ""+

    ""+

    ""+

    "

    "+

    "

    "+

    "

    "+music.singer+"
    "+

    "

    "+

    ""+music.time+""+

    ""+

    "

    "+

    "

  • ");

    item.get(0).index = index;

    item.get(0).music = music;

    return item;

    }

    });

    2.js

    //JS的面向对象

    (function(window){

    function Player(audios){

    return new Player.prototype.init(audios);

    }

    Player.prototype = {

    constructor: Player,

    musicList: [],

    init: function(audios){

    this.audios = audios;

    this.audio = audios.get(0);

    },

    currentIndex: -1,

    playMusic: function(index,music){

    //判断是否是同一首音乐

    if(this.currentIndex == index){

    //同一首音乐

    if(this.audio.paused){

    this.audios.attr("src",music.link_url);

    this.audio.play();

    }else{

    this.audio.pause();

    }

    }else{

    this.currentIndex = index;

    // console.log(this.currentIndex);

    //不是同一首

    this.audios.attr("src",music.link_url);

    this.audio.play();

    }

    },

    preIndex:function(){

    var index = this.currentIndex - 1;

    if(index < 0){

    index = this.musicList.length - 1;

    }

    return index;

    },

    nextIndex:function(){

    var index = this.currentIndex + 1;

    if(index > this.musicList.length - 1){

    index = 0;

    }

    return index;

    },

    changeMusic:function(index){

    //删除对应的数据

    this.musicList.splice(index,1);

    //判断当前删除的音乐是否是正在播放音乐的前面

    if(index < this.currentIndex){

    this.currentIndex = this.currentIndex - 1;

    }

    },

    // getMusicDuration:function(){

    // return this.audio.duration;

    // },

    // getMusicCurrentTime:function(){

    // return this.audio.currentTime;

    // },

    musicTimeUpdate:function(callBack){

    var $this = this;

    this.audios.on("timeupdate",function(){

    var duration = $this.audio.duration;

    var currentTime = $this.audio.currentTime;

    var timeStr = $this.formatDate(currentTime,duration);

    callBack(currentTime,duration,timeStr);

    });

    },

    formatDate:function(currentTime,duration){

    var endMin = parseInt(duration / 60);

    var endSec = parseInt(duration % 60);

    if(endMin < 10){

    endMin = "0" + endMin;

    }

    if(endSec < 10){

    endSec = "0" + endSec;

    }

    var startMin = parseInt(currentTime / 60);

    var startSec = parseInt(currentTime % 60);

    if(startMin < 10){

    startMin = "0" + startMin;

    }

    if(startSec < 10){

    startSec = "0" + startSec;

    }

    return startMin+":"+startSec+" / "+endMin+":"+endSec;

    },

    musicSeekTo:function(value){

    if(isNaN(value)) return;

    this.audio.currentTime = this.audio.duration * value;

    },

    musicVoiceSeekTo:function(value){

    if(isNaN(value)) return;

    if(value < 0 || value > 1) return;

    //0~1

    this.audio.volume = value;

    }

    }

    Player.prototype.init.prototype = Player.prototype;

    window.Player = Player;

    })(window);

    3.js

    //JS的面向对象

    (function(window){

    function Progress(progressBar,progressLine,progressDot){

    return new Progress.prototype.init(progressBar,progressLine,progressDot);

    }

    Progress.prototype = {

    constructor: Progress,

    init: function(progressBar,progressLine,progressDot){

    this.progressBar = progressBar;

    this.progressLine = progressLine;

    this.progressDot = progressDot;

    },

    isMove:false,

    progressClick:function(callBack){

    var $this = this;//此时此刻的this是progress

    //监听背景点击

    this.progressBar.click(function(event){

    //获取背景距离窗口默认位置

    var normalLeft = $(this).offset().left;

    //获取点击的位置距离窗口的位置

    var eventLeft = event.pageX;

    //设置前景的宽度

    $this.progressLine.css("width",eventLeft - normalLeft);

    $this.progressDot.css("left",eventLeft - normalLeft);

    //计算进度条比例

    var value = (eventLeft - normalLeft) / $(this).width();

    callBack(value);

    });

    },

    progressMove:function(callBack){

    var $this = this;

    //获取背景距离窗口默认位置

    var normalLeft = this.progressBar.offset().left;

    var barWidth = this.progressBar.width();

    var eventLeft;

    //监听鼠标的按下

    this.progressBar.mousedown(function(){

    $this.isMove = true;

    //监听鼠标的移动

    $(document).mousemove(function(event){

    //获取点击的位置距离窗口的位置

    eventLeft = event.pageX;

    var offset = eventLeft - normalLeft;

    if(offset >= 0 && offset <= barWidth){

    //设置前景的宽度

    $this.progressLine.css("width",eventLeft - normalLeft);

    $this.progressDot.css("left",eventLeft - normalLeft);

    }

    });

    });

    //监听鼠标的抬起

    $(document).mouseup(function(){

    $(document).off("mousemove");

    $this.isMove = false;

    //计算进度条比例

    var value = (eventLeft - normalLeft) / $this.progressBar.width();

    callBack(value);

    });

    },

    setProgress:function(value){

    if(this.isMove) return;

    if(value < 0 || value > 100) return;

    this.progressLine.css({

    width: value+"%"

    });

    this.progressDot.css({

    left: value+"%"

    });

    }

    }

    Progress.prototype.init.prototype = Progress.prototype;

    window.Progress = Progress;

    })(window);

    4.js

    //JS的面向对象

    (function(window){

    function Lyric(path){

    return new Lyric.prototype.init(path);

    }

    Lyric.prototype = {

    constructor: Lyric,

    musicList: [],

    init: function(path){

    this.path = path;

    },

    loadLyric:function(){

    var $this = this;

    $.ajax({

    url: $this.path,

    dataType: "text",

    success: function(data){

    // console.log(data);

    $this.parseLyric(data);

    },

    error: function(e){

    console.log(e);

    }

    });

    }

    }

    Lyric.prototype.init.prototype = Lyric.prototype;

    window.Lyric = Lyric;

    })(window);

    musiclist.json

    [

    {

    "name":"I Lomo You",

    "singer":"王欣宇",

    "album":"I Lomo You",

    "time":"01:47",

    "link_url":"./source/ILomoYou.mp3",

    "cover":"./source/ILomoYou.png",

    "link_lrc":"I Lomo You"

    },

    {

    "name":"千灯之约",

    "singer":"王者荣耀",

    "album":"千灯之约",

    "time":"06:06",

    "link_url":"./source/千灯之约.mp3",

    "cover":"./source/千灯之约.png",

    "link_lrc":"千灯之约"

    },

    {

    "name":"西海情歌",

    "singer":"刀郎",

    "album":"刀郎III",

    "time":"05:46",

    "link_url":"./source/西海情歌.mp3",

    "cover":"./source/西海情歌.png",

    "link_lrc":"西海情歌"

    },

    {

    "name":"年轻的战场",

    "singer":"张杰",

    "album":"年轻的战场",

    "time":"04:53",

    "link_url":"./source/年轻的战场.mp3",

    "cover":"./source/年轻的战场.png",

    "link_lrc":"年轻的战场"

    },

    {

    "name":"公子向北走",

    "singer":"梦凉",

    "album":"公子向北走",

    "time":"02:16",

    "link_url":"./source/公子向北走.mp3",

    "cover":"./source/公子向北走.png",

    "link_lrc":"公子向北走"

    },

    {

    "name":"一起走的幸福",

    "singer":"橘子拿来u",

    "album":"橘子翻唱合集",

    "time":"03:07",

    "link_url":"./source/一起走的幸福.mp3",

    "cover":"./source/一起走的幸福.png",

    "link_lrc":"一起走的幸福"

    },

    {

    "name":"棉花糖",

    "singer":"黑崎子",

    "album":"棉花糖",

    "time":"03:49",

    "link_url":"./source/棉花糖.mp3",

    "cover":"./source/棉花糖.png",

    "link_lrc":"棉花糖"

    },

    {

    "name":"藏不住的心跳",

    "singer":"何三川",

    "album":"藏不住的心跳",

    "time":"03:59",

    "link_url":"./source/藏不住的心跳.mp3",

    "cover":"./source/藏不住的心跳.png",

    "link_lrc":"藏不住的心跳"

    },

    {

    "name":"有幸",

    "singer":"老光",

    "album":"有幸",

    "time":"03:39",

    "link_url":"./source/有幸.mp3",

    "cover":"./source/有幸.png",

    "link_lrc":"有幸"

    },

    {

    "name":"孤芳自赏",

    "singer":"杨小壮",

    "album":"孤芳自赏",

    "time":"04:28",

    "link_url":"./source/孤芳自赏.mp3",

    "cover":"./source/孤芳自赏.png",

    "link_lrc":"孤芳自赏"

    },

    {

    "name":"理想三旬",

    "singer":"张宇清",

    "album":"理想三旬",

    "time":"03:08",

    "link_url":"./source/理想三旬.mp3",

    "cover":"./source/理想三旬.png",

    "link_lrc":"理想三旬"

    },

    {

    "name":"会好的",

    "singer":"张艺兴",

    "album":"会好的",

    "time":"03:30",

    "link_url":"./source/会好的.mp3",

    "cover":"./source/会好的.png",

    "link_lrc":"会好的"

    },

    {

    "name":"只要平凡",

    "singer":"张杰/张碧晨",

    "album":"只要平凡",

    "time":"04:06",

    "link_url":"./source/只要平凡.mp3",

    "cover":"./source/只要平凡.png",

    "link_lrc":"只要平凡"

    },

    {

    "name":"老人与海",

    "singer":"海鸣威",

    "album":"精彩音乐汇",

    "time":"02:54",

    "link_url":"./source/老人与海.mp3",

    "cover":"./source/老人与海.png",

    "link_lrc":"老人与海"

    },

    {

    "name":"会呼吸的痛",

    "singer":"梁静茹",

    "album":"会呼吸的痛",

    "time":"04:32",

    "link_url":"./source/会呼吸的痛.mp3",

    "cover":"./source/会呼吸的痛.png",

    "link_lrc":"会呼吸的痛"

    }

    ]

    以上就是我们需要完成的所有代码。

    还有一些插件(两个js和一个css)需要自己到网上去下载,如果找不到可以私信我,我私发给你。

    下面再来看看完成之后的效果图吧!

    我随便截了几张图,下面我来说说可以实现的功能:

    基本的播放暂停和上一首下一首毋庸置疑是没问题的,还可以实现调节音乐声音的大小、拖拉进度条等等。

    而且你们可以看到,背景色是会随着歌曲的不同而改变的,是不是显得高端大气上档次呀!

    最美中不足的是我按钮都没有用相应的图标代替,这怪我做的时候偷懒了,但是你们自己可以试试去改一下,也不难,就是在css找到相应的按钮背景换成图片就可以。

    还有就是歌词同步问题,由于当时我找不到相应歌曲的歌词文档,所以我就省了这一步骤。你们如果有歌词文档的话,把歌词封装成一个数组,然后导入,添加一个js就可以了。

    如果在制作过程中有如何问题你都可以私信我,我会答复你的。

    最后,祝大家都可以成功制作出QQ音乐,这就是系列二的全部内容了,大家中秋节记得吃月饼和柚子哦!have a good time!

    更多尼泊尔内容

    世界杯历史上的十大球王:贝利第一,马拉多纳第二,梅西第三
    紫檀- 央视主播免费编辑修改义项名
    3658188

    紫檀- 央视主播免费编辑修改义项名

    🗓️ 08-16 👁️ 3671
    嗒嗒用车怎么收费 嗒嗒用车收费详情介绍
    3658188

    嗒嗒用车怎么收费 嗒嗒用车收费详情介绍

    🗓️ 07-20 👁️ 6201
    电视剧女主受刑—电视剧女主受刑的有哪些
    注册送365元可提款

    电视剧女主受刑—电视剧女主受刑的有哪些

    🗓️ 07-06 👁️ 6484
    软考哪个科目更容易过?70%考生都选这几个科目,看完数据你就懂!
    “越早会笑的宝宝越聪明”,是真的吗?新生儿几个月会笑
    注册送365元可提款

    “越早会笑的宝宝越聪明”,是真的吗?新生儿几个月会笑

    🗓️ 06-29 👁️ 1714
    极速成仙引导《开心》飞升渡劫全攻略
    注册送365元可提款

    极速成仙引导《开心》飞升渡劫全攻略

    🗓️ 07-04 👁️ 5779
    债券到期收益率的计算公式
    3658188

    债券到期收益率的计算公式

    🗓️ 07-06 👁️ 9936
    王者荣耀梦魇是什么装备
    3658188

    王者荣耀梦魇是什么装备

    🗓️ 06-28 👁️ 9466