JS和H5做一个音乐播放器,附带源码

JS和H5做一个音乐播放器,附带源码

http://mp.weixin.qq.com/s/KpXT9X46AMlUVXQvpHuXGQ

效果图:

JS和H5做一个音乐播放器,附带源码

实现的功能

1、首页

JS和H5做一个音乐播放器,附带源码

2、底部播放控件

JS和H5做一个音乐播放器,附带源码

3、播放页面

JS和H5做一个音乐播放器,附带源码

4、播放列表

JS和H5做一个音乐播放器,附带源码

5、排行榜

JS和H5做一个音乐播放器,附带源码

6、音乐搜索

输入搜索关键词,点击放大镜图标

JS和H5做一个音乐播放器,附带源码

7、侧边栏

JS和H5做一个音乐播放器,附带源码

目录结构

JS和H5做一个音乐播放器,附带源码

开发心得与总结

1、轮播图

首先感谢作者ShanaMaid/vue-image-scroll开源的代码,我把代码copy下来自己进行了一点修改(没有手指滑动效果),因为这是移动端,少不了的手指滑动切换,所以添加了vue-touch(偷偷告诉你,vue-touch的next分支还是支持vue2.0的)。

地址:https://github.com/hzzly/MagicMusic/blob/master/src/components/banner.vue

JS和H5做一个音乐播放器,附带源码

2、歌曲操作(喜欢,分享,加入播放列表)动画、播放列表展开与删除歌曲动画Vue提供了transition的封装组件,在下列情形中,可以给任何元素和组件添加 entering/leaving 过渡

  • 条件渲染 (使用 v-if)

  • 条件展示 (使用 v-show)

  • 动态组件

  • 组件根节点

JS和H5做一个音乐播放器,附带源码

transition-group一组过度动画,这里有个小坑的,之前看官网列表过渡的栗子,给每一项设置唯一的key值,一般都会用index。所以在做的时候就把index传给key,结果过渡老是不对,后来换成对应的item就正常了(生无可恋脸)。

3、直线进度条、弧形进度条

西班牙建筑大师曾说过:“直线属于人类,曲线则归于上帝”。在这里我大胆的使用了弧形来作为进度条,(几大热门音乐APP貌似还没有弧形进度条)。

这里我用到了Vue的绑定内联样式

JS和H5做一个音乐播放器,附带源码

4、本地存储

将一些数据缓存到localStorage,可以减少Http请求,从而优化页面加载时间。

在这个项目中首页歌曲列表以及搜索历史用到了本地缓存,拿搜索历史来举栗:

JS和H5做一个音乐播放器,附带源码

5、图片懒加载

使用了vue-lazyload插件

用法:

JS和H5做一个音乐播放器,附带源码

JS和H5做一个音乐播放器,附带源码

6、歌词滚动与高亮

因为api提供的歌词包括时间,如:

[03:57.280]原谅我这一生不羁放纵爱自由

所以首先要进行字符串切割:

JS和H5做一个音乐播放器,附带源码

然后在播放的监听事件中与播放的当前做对比:

JS和H5做一个音乐播放器,附带源码

到这就ok了

7、VUEX状态管理

推荐官方调试工具 devtools extension

之前看到好多人写的vuex,把整个项目的数据放到了一个state里,导致应用的所有状态集中到一个很大的对象。但是,当应用变得很大时,store 对象会变得臃肿不堪。

所以我建议(个人见解,轻喷):将 store 分割到模块(module)。每个模块拥有自己的 state、mutation、action、getters。这样方便管理与后期的维护。

车已到站✌️。

不知不觉写了这么多,老铁们凑合这看吧,觉得还行的可以点赞,需要完整代码练习的加群453833554: 已经上传到群文件。


JS和H5做一个音乐播放器,附带源码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113860.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月10日 上午8:00
下一篇 2021年10月10日 上午8:00


相关推荐

  • 模板阴影理论概述

    模板阴影理论概述尹克雄|2002年12月02日07:30|图形编程与理论阴影 体积 平面 模板 光 前身 图 深度 夹讨论使用模板阴影卷的几种方法,包括每种阴影卷的优点和缺点。介绍阴影以前只是一个变暗的纹理,通常是圆形的形状,它被投射到游戏中的字符或对象之下的地板上。一个人必须不知情或天真地认为,我们仍然可以在未来的3D游戏中摆脱这种粗暴的“

    2022年6月2日
    51
  • c++多线程入门_c语言是单线程还是多线程

    c++多线程入门_c语言是单线程还是多线程多线程的优势线程创建更加快速线程间切换更加快速线程容易终止线程间通讯更快速C语言的多线程可以通过gcc编译器中的pthread实现。案例1:helloworld#include<stdio.h>#include<pthread.h>void*myfunc(void*args){printf(“helloworl…

    2022年10月21日
    5
  • 网上英语学习资源大整理

    网上英语学习资源大整理 翻译http://www.bilinguist.com/汉英论坛,高手云集[url]http://www.chinatranslate.net/[/url]中国翻译网,号称全国最大的翻译专业网站[url]http://gb.transea.com/[/url]机器即时翻译,适合整体翻译网站及段落,但不够准确。适合一般人[url]http://www.si-chi…

    2025年7月24日
    9
  • 详解贝叶斯学派与频率学派的区别和联系

    详解贝叶斯学派与频率学派的区别和联系大家好,我是东哥。要说贝叶斯和频率学派,那简直太有意思了。为什么这么说呢?因为两个学派的理解对于我来说真的是一场持久战。我是在学习机器学习的时候接触到的这两个学派,此前并不知道,当时就被深深吸引了,于是找了各种资料学习下来,说实话感觉有点懂了,但又感觉没理解透。后面我一直是带着这种似懂非懂的状态继续肝机器学习。但随着不断深入学习我发现很多理论其实都有出现两个学派的身影,而且在模型算法层面结合两派不断琢磨对我的理解有了很大帮助,经常有茅塞顿开的感觉(那段日子真的进步的飞起)。虽说我有点笨,但好在经过时间

    2022年6月2日
    83
  • 数据结构与算法二叉树的算法_数据结构c语言二叉树的深度

    数据结构与算法二叉树的算法_数据结构c语言二叉树的深度一、什么是二叉树1.概述首先,需要了解树这种数据结构的定义:树:是一类重要的非线性数据结构,是以分支关系定义的层次结构。每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且

    2022年8月16日
    10
  • SQL 存储过程 调试

    SQL 存储过程 调试SQL 存储过程调试 SqlServer 输出 print 变量名 nbsp nbsp print nbsp NextCount nbsp nbsp nbsp nbsp print nbsp nbsp 输出常量 在需要的位置写上 然后执行下述操作 执行一遍 对该存储过程进行保存然后选择需要执行的存储过程 填写对应的参数 点击确定执行 执行后会出现下述图片 点击消息查看自己的 print 输出结果

    2026年3月26日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号