时间:2021-05-25
先给大家看下效果图,感兴趣的朋友可以参考实现代码
核心代码如下所示:
$.ajax({url: "/music/music.txt",type: "get",success: function(data) {data = jQuery.parseJSON(data);var length = data.length;var now=0;for (i = 0; i < length; i++) {$("#musicText li").eq(i).after("<li>" + data[i].text + "</li>")}var player = {playButton: $(".play"),songText: $(".musicText"),state: 0,//0播放,1暂停audio: $("#audio").get(0),bind: function() {//绑定按钮//播放或暂停console.log($.type(this))console.log($.type(this))var obj = this;this.playButton.click(function() {obj.changeState(obj.state ? 0 : 1);});//设置声音$("#voice").click(function(ex) {var percent = (ex.clientX - $(this).offset().left) / $(this).width();obj.setVoice(percent);});//默认声音 0.8 obj.setVoice(1.0);//静音$("#voiceOP").click(function() {if (obj.muted) {$(this).removeClass("muted");obj.audio.muted = false;obj.muted = false;} else {$(this).addClass("muted");obj.audio.muted = true;obj.muted = true;}});//设置进度$("#MusicProgress").click(function(ex) {var percent = (ex.clientX - $(this).offset().left) / $(this).width();obj.setProgress(percent, false);});//上一首$("#prev").click(function() {obj.nowIndex--;if (obj.nowIndex < 0) obj.nowIndex = obj.list.length - 1;obj.playSing(obj.nowIndex);});//下一首$("#next").click(function() {obj.nowIndex++;if (obj.nowIndex >= obj.list.length) obj.nowIndex = 0;obj.playSing(obj.nowIndex);player.audio.play();});//绑定事件 - 播放时间改变this.audio.ontimeupdate = function() {obj.timeChange();}//播放结束this.audio.onended = function() {obj.singEnd();}},//切换播放状态changeState: function(_state) {this.state = _state;if (!this.state) {this.playButton.removeClass("pause").addClass("play");this.pause();} else {this.playButton.removeClass("play").addClass("pause");this.play();}},//播放play: function() {this.audio.play();},//暂停pause: function() {this.audio.pause();},timeChange: function() {var nowSec = Math.floor(this.audio.currentTime);console.log(nowSec)console.log(data[now].time)if(nowSec>data[now].time){now = now + 1;console.log(now)$("#musicText li").eq(now).addClass("active").siblings("li").removeClass("active");$("#musicText").css("top",-(24*now)+138)}var totalSec = Math.floor(this.audio.duration);//当前进度显示var secTip = secFormat(nowSec) + "/" + secFormat(totalSec);if (secTip.length == 11) $("#secTip").html(secTip);this.setProgress(nowSec / totalSec, true);},setVoice: function(percent) {$("#voice").children(".bar").css("width", percent * 100 + "%");$("#voice").children("a").css("left", percent * 100 + "%");this.audio.volume = percent;},setProgress: function(percent, justCss) {$("#MusicProgress").children(".bar").css("width", percent * 100 + "%");$("#MusicProgress").children("a").css("left", percent * 100 + "%");if (!justCss) this.audio.currentTime = this.audio.duration * percent;},singEnd: function() {if (this.style == 0) {this.nowIndex++;if (this.nowIndex >= this.list.length) this.nowIndex = 0;this.playSing(this.nowIndex);} else {var index = Math.floor(Math.random() * (this.list.length + 1)) - 1;index = index < 0 ? 0 : index;index = index >= this.list.length ? (this.list.length - 1) : index;this.playSing(index);this.nowIndex = index;}},};player.bind();function secFormat(num) {var m = Math.floor(num / 60);var s = Math.floor(num % 60);return makeFormat(m) + ":" + makeFormat(s);function makeFormat(n) {if (n >= 10) return n;else {return "0" + n;}}}}})然后这里的代码是alpha0.0.1版的,一直在升级ing.
以上所述是小编给大家介绍的基于jQuery实现歌词滚动版音乐播放器的代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
各种音乐播放器上都有一个自动滚动播放歌词的功能,当前滚动到的歌词会高亮居中显示,即使歌词被换行也能正常居中,那么这个功能基于JavaScript怎么实现让歌词滚
本文主要介绍了原生JS实现音乐播放器的示例代码,分享给大家,具体如下:效果图音乐播放器播放控制播放进度条控制歌词显示及高亮播放模式设置播放器属性归类按照播放器的
不少朋友喜欢在打开音乐播放器之后,一边看歌词,一边听歌,如果当前只有播放音乐的话,不妨将歌词界面全屏。那么百度音乐如何全屏歌词?软件名称:百度音乐播放器PC
一、阐述简约之美——歌词功能 随着QQ音乐、千千静听等音乐播放器的流行,歌词功能已经成为网民的一个常用功能。目前支持歌词的视频播放器也
qq音乐怎么上传自制歌词qq音乐上传歌词文件教程软件名称:QQ音乐播放器v17.73.0最新官方正式安装版软件大小:52.0MB更新时间:2020-08-27立