查看“VUE 综合应用 歌曲封面”的源代码
←
VUE 综合应用 歌曲封面
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
https://www.bilibili.com/video/BV12J411m7MG/?p=33 === 功能分析 === # 点击播放(<u>增加逻辑</u>) # 歌曲封面获取(<u>接口</u> <u>歌曲id</u>) # 歌曲封面设置(<u>v-bind</u>) === 歌曲详情获取 === 请求地址:https://autumnfish.cn/song/detail 请求方法:get 请求参数:ids(歌曲id) 响应内容:歌曲详情,包含封面信息 === 完整代码示例 === <syntaxhighlight lang="html"> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>悦听player</title> <style> .disc { position: absolute; left: 73px; top: 60px; z-index: 9; } .cover { position: absolute; left: 125px; top: 112px; width: 150px; height: 150px; border-radius: 75px; z-index: 8; } /* 旋转的动画 */ @keyframes Rotate { from { transform: rotateZ(0); } to { transform: rotateZ(360deg); } } /* 旋转的类名 */ .autoRotate { animation-name: Rotate; animation-iteration-count: infinite; animation-play-state: paused; animation-timing-function: linear; animation-duration: 5s; } </style> </head> <body> <div class="wrap"> <!--播放器主体区域--> <div class="play_wrap" id="player"> <div class="search_bar"> <img src="images/player_title.png" alt=""/> <!--搜索歌曲--> <input type="text" autocomplete="off" v-model="query" @keyup.enter="searchMusic"/> <div class="center_con"> <!--搜索歌曲列表--> <div class="song_wrapper"> <ul class="song_list"> <li v-for="item in musicList"> <!-- <a href="javascript:;" @click="playMusic(x.id)">{{ item.id }}点击播放</a> --> <a href="javascript:;" @click="playMusic(item.id)">点击播放</a> <b>{{ item.name }}</b> <span><i></i></span> </li> </ul> <img src="images/line.png" class="switch_btn" alt=""> </div> <!--歌曲信息容器--> <div class="player_con"> <img src="images/player_bar.png" class="play_bar"/> <!--黑胶碟片--> <img src="images/disc.png" class="disc autoRotate"> <img :src="musicCover" class="cover autoRotate"> </div> </div> <div class="audio_on"> <audio ref="audio" :src="musicUrl" controls autoplay loop class="myaudio"></audio> </div> <video class="video_con" style="display:none;"> <video src="" controls="controls"></video> <div class="mask"></div> </video> </div> </div> </div> <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="vue.js"></script> <script src="axios.min.js"></script> <script> /* 歌曲搜索接口 请求地址:https://autumnfish.cn/search 请求方法:get 请求参数:keywords(查询关键字) 响应内容:歌曲搜索结果 歌曲url获取接口 请求地址:https://autumnfish.cn/song/url 请求方法:get 请求参数:id(查询关键字) 响应内容:歌曲url地址 歌曲详情获取 请求地址:https://autumnfish.cn/song/detail 请求方法:get 请求参数:ids(歌曲id) 响应内容:歌曲推荐(包括封面信息) */ var app = new Vue({ el:"#player", data: { //查询关键字 query:"", //歌曲数组 musicList:[], //歌曲地址 musicUrl:"", //歌曲封面 musicCover:"" }, methods :{ searchMusic: function () { var that = this; axios.get("https://autumnfish.cn/search?keywords="+this.query) .then(function(response){ // console.log(response); that.musicList = response.data.result.songs; // console.log(response.data.result.songs); },function(err){ }) }, playMusic: function(musicId) { // console.log(musicId); var that = this; // 获取歌曲地址 axios.get("https://autumnfish.cn/song/url?id=" + musicId) .then(function(response){ console.log(response); // console.log console.log(response.data.data[0].url); that.musicUrl = response.data.data[0].url; }, function(err){}) // 歌曲详情获取 axios.get("https://autumnfish.cn/song/detail?ids="+musicId) .then(function(response){ console.log(response); console.log(response.data.songs[0].al.picUrl); that.musicCover = response.data.songs[0].al.picUrl; }, function(err){}) } } }) </script> </body> </html> </syntaxhighlight> === 总结和注意 === * 在 vue 中通过 <u>v-bind</u> 操纵属性 * 本地无法获取的数据,基本都会有对应的 <u>接口</u>
返回至
VUE 综合应用 歌曲封面
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息