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://www.cnblogs.com/lxwphp/p/7730793.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353482.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Video Editor MovieMator Pro for Mac(视频编辑大师专业版)

Video Editor MovieMator Pro Mac版是一款功能齐全的Mac视频编辑器,可在几分钟内创建专业品质的视频。它提供了基本的编辑功能,如修剪,裁剪,分割,旋转等。此外,作为Mac视频编辑器, MovieMator P…

求大师点化,寻求大文件(最大20G左右)上传方案

之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需求,都能得到…

一键智能切割(分割)整轨wav、flac、ape音乐文件

几乎所有的音乐分割软件,都需通过人工试听来确定每一首音乐的断点(起始时间点、结束时间点),且只支持mp3、wav两种格式,非常不便,切割音乐需耗费大量时间。 dts音效大师的音乐切割功能,既保留了…

Linux--ServerProgramming--(4)详解 I/O复用

1. I/O 复用功能 I/O 复用能同时监听多个文件描述符。 I/O 复用本身是阻塞的。 当有多个文件描述符同时就绪时:若不采取额外措施,程序就只能按顺序一次处理其中的每一个文件描述符,这使得服务器程序看起来是串行工作的。若要实现并发&#…

【OpenMMLab AI实战营第二期】深度学习预训练与MMPretrain

深度学习预训练与MMPretrain MMPreTrain 算法库介绍 MMPretrain 是一个全新升级的预训练开源算法框架,旨在提供各种强大的预训练主干网络, 并支持了不同的预训练策略。MMPretrain 源自著名的开源项目 MMClassification 和 MMSelfSup,并开发…

Selenium浏览器自动化怎么上传文件

Selenium 封装了现成的文件上传操作。但是随着现代前端框架的发展,文件上传的方式越来越多样。而有一些文件上传的控件,要做自动化控制会更复杂一些,这篇文章主要讨论在复杂情况下,如何通过自动化完成文件上传。 1. input 元素上传…

如何判断电脑已感染“磁碟机”病毒?

1. 某些常用安全软件打不开,打开后立即被关闭,或者打开后有被“分尸”的现象,这是由于病毒不断向这些软件发送垃圾消息导致他们不能响应正常的用户指令导致。 2. 安全模式被破坏。用户试图进入安全模式时,显示的…

盘点IT史上最牛的三大病毒

2019独角兽企业重金招聘Python工程师标准>>> 磁碟机】——史上最牛的木马运输机 目前结局:消声匿迹。是避风头还是气数已尽?磁碟机病毒作者仿佛比熊猫烧香作者更聪明一些,面对网民的骂声一片,面对各大反病毒厂商的联合…

如何完美清除被磁碟机感染的文件?

经过我N种杀毒软件2天时间的测试,唯有江民杀毒软件可以完美清除被磁碟机感染的文件,清除后文件CRC32与原未感染文件CRC32完全相同。 以下是比较报告: File: E:/磁碟机病毒样本/原未感染文件/Wlisten.exe Size: 53760 bytes File Version: 4.1…

360安全卫士大战“病毒之王”——最新磁碟机变种

ps: 前天,一朋友的电脑也是这种情况,任何的杀软都不能打开,一打开就是找不到文件,没油办法打开,我拿到电脑后首先安装了江民2008(丁香鱼提供),能够启动,并且查杀了几个病…

遗补:“预防‘磁碟机’病毒”

就在我写完“预防‘磁碟机’病毒”的第三天,我的同事张哥就发现我做出来的防毒文件夹有一个问题。这个问题就是在正常情况下这些文件夹的文件名是可以修改的。拿Autorun.inf这个文件夹来说吧,里面的“AnitVirus.”这个文件夹是既打不开,以不可…

windows11安装docker desktop实现docker环境

简介 我们知道docker的安装一般我们是安装在linux系统上的,但是如果你的宿主机是windows,那么你还想装docker,那么就需要现在你的windows上装上虚拟机,虚拟机上装linux操作系统,然后在Linux操作系统上再去安装docker&…

磁碟机病毒***猖獗教你应对方法

转自: 技术频道 [url]http://technic.txwm.com/[/url] 磁碟机***最近成为安全领域的热门话题,据悉,进入3月以来,“磁碟机”***作者已经更新了数次,感染率和破坏力正逐步提高。 磁碟机***介绍:“磁碟机”***…

磁碟机病毒查杀

这是一个比“熊猫烧香”更狡猾、凶狠的病毒,它会关闭杀毒软件,下载盗号木马,给网民带来极大的损失。截至3月20日,“ ”已感染数十万台电脑。 瑞星安全专家认为,“”病毒是一个具有明确经济目的的病毒犯罪团伙所为&…

磁碟机病毒(Dummycom)专杀工具

磁碟机病毒(Dummycom)专杀工具 360磁碟机专杀v2.0,可彻底清除磁碟机病毒,完美修复被感染、被损坏的文件! 磁碟机病毒(Dummycom)简介: 近日,360安全中心截获了一款新的木马病毒,命名为“磁碟机Dummycom”&am…

U盘中了磁碟机病毒怎么办

问题: U盘在中毒了的电脑上使用后,里面的文件夹均消失了,这是因为里面的文件夹属性被改为隐藏属性。通过查看显示隐藏文件夹发现,所有隐藏了的文件夹的隐藏属性被锁定,无法通过鼠标右键查看文件夹属性的方法改回来。 背…

第3章:SpringMVC获取请求参数

一、SpringMVC获取请求参数 1.通过servletAPI获取 将HttpServletRequest作为控制器方法的形参&#xff0c;此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象 <a th:href"{/testServletAPI(usernameadmin,password123456)}">测试API<…

Qcom_hexagon编译自动获取目录和特定文件的方法

一&#xff0c;简介 本文主要介绍&#xff0c;如何在高通hexagon ide中的hexagon.min中添加获取目录和.c文件的方法&#xff0c;供参考。 二&#xff0c;具体命令 OBJ_PATH : ./awinic_sp_module/algo_libINCLUDE_PATH : $(shell find $(OBJ_PATH ) -type d) SRC_C_FILE : …

supervisor的使用教程

原文链接&#xff1a;http://blog.csdn.net/xyang81/article/details/51555473 Supervisor&#xff08;http://supervisord.org/&#xff09;是用Python开发的一个client/server服务&#xff0c;是Linux/Unix系统下的一个进程管理工具&#xff0c;不支持Windows系统。它可以很方…

supervisor的用法

supervisor是什么&#xff1a; 守护进程的一个工具&#xff1b;比如PM2、Forever、 Python底层写的supervisor 等等... 用法&#xff1a; 1、安装 我用的是yum安装&#xff0c;还有其他的很多安装方式就不一一介绍&#xff0c;有兴趣的中级查 yum install supervisor2、Supervi…