点击右边的问题,跳转到问题列表页面。如果你想跳到相应的位置,它会变成蓝色。js如何实现?

接口实现

主页

主页面是对其他网页音乐播放器的模仿,效果如图:?

上面有导航栏可以切换到其他功能页面,下面有页脚。点击它,切换到播放界面。

播放页面?

实现了播放模式(单循环、随机播放、循环播放)、上一首、下一首、播放/暂停以及音乐播放列表的呈现。

搜索页面

搜索歌曲获得相应的歌单,点击开始播放。

实现

音乐播放的功能主要依靠H5标签。它具有以下更重要的属性:

Src:用于播放的音频源;?

自动播放:“自动播放”定义自动播放;?

loop:“loop”定义循环播放;?

控件:“控件”显示播放控件。

另外,音频还有很多事件属性,可以用来实现音乐播放器播放音频的交互效果。比如:?

媒体事件包括oncanplay事件、onended事件、onpause和onplay事件等。详情请参考W3C上的文档。

主界面的实现?

主要使用隐藏音频标签;?

监控窗口下的mousemove事件,通过鼠标的移动设置导航栏的显示,监控导航栏中的mouseleave事件设置导航栏的隐藏;?

封装图片传送带的插件;?

播放列表的实现(有些音乐最初存储在数组中);?

页脚布局实现。

有两个主要的东西需要详细描述:轮播插件和播放列表的实现。?

JQuery插件大多是用下面的模板写的:?

如果是全局插件。

;(函数($){

$.扩展({

函数名:function(){

//一些处理操作

}//这是一个全局插件,即可以通过jQeury直接调用。函数名。

});

})(jQuery)

如果是对象插件:

;(函数($){

$.fn.extend({

函数名:function(){

//函数实现体

}

});?//顾名思义,对象插件就是特定对象调用的方法})(jQuery)

所以,首先实现了在页面中显示轮播的效果:?

主旨:每隔一段时间改变画面的透明度,改变画面上层黑点和白点的效果;

var Url = " MusicPlayerImg/";var LunboArr = ["Music.jpg "," music3。PNG "," music2。PNG "," music4。PNG "," music5。PNG "," music6。PNG "];var I = 0;

$("#trueImg ")。fadeTo(1000,0.2);

setInterval(function(){

$("#trueImg ")。fadeTo(1000,1);

$("#circles img ")。每个(函数(索引,el) {

$(这个)。attr ('src ',' music player img/黑点。png’);?

});

$("#trueImg ")。attr('src ',Url+LunboArr[(I+1)% 6]);var selector = " # circles img:eq("+((I+1)% 6)+")";

$(选择器)。attr ('src ',' music player img/白点。png’);?

i++;

$("#trueImg ")。fadeTo(1000,0.2);

}, 2000);

然后将其封装到一个div对象插件中:

;(函数($){

$.fn.extend({

lunbo: function(){

var Url = " MusicPlayerImg/";var LunboArr = ["Music.jpg "," music3。PNG "," music2。PNG "," music4。PNG "," music5。PNG "," music6。PNG "];var I = 0;

$("#trueImg ")。fadeTo(1000,0.2);

setInterval(function(){

$("#trueImg ")。fadeTo(1000,1);

$("#circles img ")。每个(函数(索引,el) {

$(这个)。attr ('src ',' music player img/黑点。png’);?

});

$("#trueImg ")。attr('src ',Url+LunboArr[(I+1)% 6]);var selector = " # circles img:eq("+((I+1)% 6)+")";

$(选择器)。attr ('src ',' music player img/白点。png’);?

i++;

$("#trueImg ")。fadeTo(1000,0.2);

}, 2000);

}

});?

})(jQuery)