-
21 |
- 22 | {{ ontwolyricstime }} 23 | 24 |
- 25 | {{ onlyricstime }} 26 | 27 |
- 28 | {{ lyricstime }} 29 | 30 |
- 31 | {{ nextlyricstime }} 32 | 33 |
- 34 | {{ nexttwolyricstime }} 35 | 36 |
├── .babelrc ├── .gitignore ├── README.md ├── debug.log ├── index.html ├── package.json ├── screenshot ├── list.png ├── play.png ├── rank.png ├── recommend.png ├── search.png └── song.png ├── src ├── App.vue ├── components │ ├── ChildContainer │ │ ├── AllSinger.vue │ │ ├── Playerbig.vue │ │ ├── Search.vue │ │ └── SongClassify.vue │ ├── Me.vue │ ├── Music.vue │ ├── NotFound.vue │ ├── Play.vue │ ├── Rank.vue │ ├── Recommend.vue │ ├── Sheet.vue │ └── home.vue ├── config │ └── api.js ├── image │ ├── 1482312358874_.jpg │ ├── 1486478610443_.jpg │ ├── 1486821984806_.jpg │ ├── 1486987185879_.jpg │ ├── T003R720x288M000002mryCr3VtdR3.jpg │ ├── T003R720x288M000003utrAc4A7FwF.jpg │ ├── T003R720x288M000004Zu0uz1PYd2t.jpg │ ├── small.png │ └── timg.png ├── main.js ├── router.js └── store │ └── index.js └── webpack.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015", "stage-0"], 3 | "plugins": ["transform-object-rest-spread"] 4 | } 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log 5 | .idea 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ###项目文档 2 | 3 | ##### 项目在线地址 4 | 5 | 已过期 6 | 7 | ##### webApp项目建立 8 | 9 | * 四个页面分类(推荐,排行,路由,我的) 10 | * 基本样式结构搭建 颜色暂定 rgb(105, 25, 51) 11 | * 首页页 : 1.轮播图 2.搜索 3.歌手分类 4.歌曲分类 5.新歌速递 6.每日推荐 12 | * 排行页 : 1.搜索 2.巅峰榜列表展示(各种类歌单的前三首展示) 13 | * 歌单页 : 1.轮播图 2.全部歌单(其中一个歌单的全部整个列表图片+歌名) 14 | * 我的页面 : 个人设置部分 (细节待定 暂为空) 15 | 16 | 17 | ##### 使用数据(数据为QQ音乐官方接口,仅供学习) 18 | 19 | * 功能 : 20 | * 跑通页面跳转路由 vue-router 21 | * 没有使用原生ajax , 而是使用了vue-resource插件代替原生ajax进行接口调用 22 | + this.$http.get(url, ).then(function(response) { console.log(response) }) 23 | * 需要的数据 : 歌名 歌手名 图片 歌曲播放地址 24 | * 列表渲染将数据渲染到页面 v-for 25 | * 事件处理器 对被渲染在页面上的歌曲做操作 v-on 26 | 27 | --- 28 | 29 | * 问题 : 30 | * 引入插件报错问题 31 | 32 | 33 | 34 | ##### 样式修正 35 | 36 | * 修复 : 37 | * 由于之前引入的是自己写的一个功能类插件 代码中写入了大量的事件 不符合vue的事件处理机制 所以报错 38 | * 修改页面结构样式 39 | * 某些指定事件添加方法 给元素ref属性 在 生命周期methods 中写入执行代码 40 | 41 | --- 42 | 43 | * 问题 : 44 | * 一首歌曲播放结束后就会报错卡死 45 | * 页面间的数据传递问题 需要将歌词的id传递到播放页面 46 | 47 | 48 | ##### 增加功能 49 | * 新增 50 | * 搜索部分功能 51 | * 搜索列表展示下拉加载功能(每条10首歌) 52 | * 通过获取id ,用此id请求歌曲的歌词 通过正则表达式处理lrc格式的歌词 53 | * 歌词同步渲染到页面 通过歌词中的时间与当前播放时长的对应关系 54 | * 增加loading样式 增强体验效果 55 | 56 | * 修复 57 | * 通过配置路由和点击事件的参数传递,另一个页面的数据接收问题解决 58 | * 修改搜索模式 选中搜索框直接进入搜索页面 提高效率 59 | 60 | ##### 整体修改 61 | * 修改 62 | * 整体页面背景颜色修改 63 | * 增加禁止缩放限制 64 | * 增加移动端浏览器访问体验 移动端主流浏览器体验优化 65 | * 增加各种机型适配样式 修复移动端部分样式错乱问题 66 | 67 | --- 68 | 69 | * 问题与想法 70 | * 整体背景修改后的部分样式不明显问题 71 | * 懒加载问题 72 | * 关于播放页面 73 | + 3个按钮在移动端显示的时候总感觉是歪的 74 | + 无播放列表 没有做切换歌曲的功能 75 | 76 | 77 | ##### 重构 78 | 79 | * 安装 vue-awesome-swiper 插件 让4个主要导航滑动展示 增强体验 80 | * 新增一个home页面 将4个页面配合vue-awesome-swiper 插件渲染到home页面 在通过路由渲染到入口页 81 | 82 | ##### 播放列表重建 83 | * 思路 84 | * 将进入方式从路由跳转转为展开隐藏在home页面中的元素 (好处是可以获取到更多的信息 不仅仅是歌曲id) 85 | * 选择一首歌之后并不会直接进入大的播放页面 而是将歌曲添加到页面底部的播放栏中 当点击这个播放栏时 在展开整页的播放器 86 | 87 | ##### VueX的加入 88 | * 使用vuex作为数据存储空间与多个组件间的通信功能 89 | * 减少了路由跳转页面 变为组件与组件间的跳转 90 | * 由于用到vuex中的辅助函数 需要用到es7的语法 下载相关babel解析包并重新配置.babelrc文件 91 | * 页面结构变更 新增底部的播放器 92 | 93 | ##### 播放列表重建2 94 | * 新增播放列表并配置列表功能 选中的歌曲添加至列表中可任意选择播放 95 | * 底部播放器与整页单曲播放器的跳转 96 | * 2个播放页面数据统一 97 | * 光碟样式回归 并将光碟改为当前播放歌曲的封面 98 | * 播放页背景为虚化的歌曲图片 99 | * 上一首 下一首 100 | 101 | ##### 优化 102 | 103 | * 修改播放组件代码结构 将数据方面的代码移至vuex中 104 | 105 | ##### 预知后事如何 请听下回分解 106 | * 歌词改为只展示一句 显示在光碟的下面(暂定) 107 | * 播放模式 108 | 109 | 110 | ##### 已知bug 111 | * 播放页面css3滤镜属性UC浏览器不支持 112 | * 无歌曲时底部播放栏应该隐藏 113 | * 播放组件代码量过多 应该做拆分 114 | 115 | 116 | ## Start 117 | + npm install 118 | 119 | ## Develop 120 | + npm run dev 121 | 122 | ## Build 123 | + npm run build 124 | 125 | ##### 项目截图 126 | 127 | ![首页] (https://github.com/houbx/webApp/blob/master/screenshot/recommend.png) 128 | ![排行] (https://github.com/houbx/webApp/blob/master/screenshot/rank.png) 129 | ![播放] (https://github.com/houbx/webApp/blob/master/screenshot/play.png) 130 | ![搜索] (https://github.com/houbx/webApp/blob/master/screenshot/search.png) 131 | -------------------------------------------------------------------------------- /debug.log: -------------------------------------------------------------------------------- 1 | [0227/013443:ERROR:tcp_listen_socket.cc(76)] Could not bind socket to 127.0.0.1:6004 2 | [0227/013443:ERROR:node_debugger.cc(86)] Cannot start debugger server 3 | [0227/033706:ERROR:tcp_listen_socket.cc(76)] Could not bind socket to 127.0.0.1:6004 4 | [0227/033706:ERROR:node_debugger.cc(86)] Cannot start debugger server 5 | [0301/222829:ERROR:tcp_listen_socket.cc(76)] Could not bind socket to 127.0.0.1:6004 6 | [0301/222829:ERROR:node_debugger.cc(86)] Cannot start debugger server 7 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |