千家信息网

微信小程序音乐播放器页面渲染的方法

发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,本文小编为大家详细介绍"微信小程序音乐播放器页面渲染的方法",内容详细,步骤清晰,细节处理妥当,希望这篇"微信小程序音乐播放器页面渲染的方法"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
千家信息网最后更新 2025年11月14日微信小程序音乐播放器页面渲染的方法

本文小编为大家详细介绍"微信小程序音乐播放器页面渲染的方法",内容详细,步骤清晰,细节处理妥当,希望这篇"微信小程序音乐播放器页面渲染的方法"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

  页面渲染

  为了解决这个问题,我们给图片添加一个渐变的遮罩,就像图10-8那样,这样到达文字部分时,背景就变成了黑色,不会影响文字的显示,而且达到了由图片到底下列表颜色渐变的效果,非常美观。

  这个效果主要靠我们的格式文件实现,我们先写我们熟悉的部分。

  1. .list-top {

  2. position: relative;

  3. height: 100%;

  4. }

  5. .list-top::after {

  6. content: " ";

  7. display: block;

  8. padding-top: 100%;

  9. }

  10. .top-info {

  11. position: absolute;

  12. bottom: 0;

  13. width: 100%;

  14. z-index: 3;

  15. }

  16. .top-img {

  17. width: 100%;

  18. height: 100%;

  19. position: absolute;

  20. }

  21. .top-info-inner {

  22. display: -webkit-box;

  23. -webkit-box-align: center;

  24. margin: 0 15px 25px;

  25. color: #fff;

  26. }

  27. .top-info-text {

  28. -webkit-box-flex: 1;

  29. margin-right: 10px;

  30. }

  31. .top-info-title {

  32. font-size: 24px;

  33. line-height: 36px;

  34. white-space: nowrap;

  35. overflow: hidden;

  36. }

  37. .top-info-base {

  38. font-size: 14px;

  39. line-height: 20px;

  40. }

复制代码

  "::after"表示在".list-top"后边添加,为了是在不修改布局文件的情况下,添加视图以达到美化的效果。

  

  我们需要添加的遮罩为布局里"top—back"这部分,格式文件为:

  1. .tl-top-b {

  2. position: absolute;

  3. bottom: 0;

  4. width: 100%;

  5. background-image: -webkit-linear-gradient(top,transparent,currentColor 80%);

  6. }

  7. .tl-top-b::after {

  8. content: " ";

  9. display: block;

  10. padding-top: 60%;

  11. }

复制代码

  -webkit-linear-gradient(top,transparent,currentColor 80%)这行代码为我们建立了线性渐变的效果,这样我们的图片底部就会出现渐变为黑色的效果了。

  剩下播放按钮的样式,这里因为用到了渐变的遮罩和背景图,为了达到最好的效果,这个按钮就不能用图片来显示了,我们使用代码来创建一个播放按钮。

  1. .tl-top-play {

  2. position: relative;

  3. display: block;

  4. width: 42px;

  5. height: 42px;

  6. margin-left: 10px;

  7. border: solid 3px;

  8. border-radius: 999px;

  9. }

  10. .tl-top-play::after {

  11. content: " ";

  12. position: absolute;

  13. left: 50%;

  14. top: 50%;

  15. margin-top: -10px;

  16. margin-left: -5px;

  17. display: inline-block;

  18. vertical-align: middle;

  19. width: 0;

  20. height: 0;

  21. border-style: solid;

  22. border-width: 10px 16px;

  23. border-color: transparent transparent transparent #fff;

  24. }

复制代码

  视图建立完毕,开始为视图填充数据。

  1. //加载网络请求函数

  2. var MusicService = require('../../services/music');

  3. //获取应用实例

  4. var app = getApp();

  5. Page({

  6. data: {

  7. // text:"这是一个页面"

  8. songList: [],

  9. imgUrl: '',

  10. id: 0,

  11. topinfo: {},

  12. update_time: '',

  13. },

  14. onLoad: function (options) {

  15. // 页面初始化 options为页面跳转所带来的参数

  16. var self = this;

  17. var id = app.globalData.topListId;

  18. this.setData({

  19. id: id

  20. });

  21. MusicService.getTopListInfo(id, this.getTopListCallback)

  22. },

  23. })

复制代码

  这里我们获取了保存于全局变量里的topListId(即我们点击的排行分类的ID),然后使用这个ID请求网络。

  1. getTopListCallback: function (data) {

  2. var imgUrl = data.topinfo.pic_album;

  3. this.setData({

  4. topinfo: data.topinfo,

  5. update_time: data.update_time

  6. });

  7. this.setSongList(data.songlist);

  8. },

复制代码

  使用回调函数为我们的data赋值之后,这里调用了setSongList这个方法,通过这个方法我们把返回数据里我们需要的内容保存到songList里。

  1. setSongList: function (songs) {

  2. var list = [];

  3. for (var i = 0; i < songs.length; i++) {

  4. var item = songs[i];

  5. var song = {};

  6. var album = {};

  7. album.mid = item.data.albummid

  8. album.id = item.data.albumid

  9. album.name = item.data.albumname;

  10. album.desc = item.data.albumdesc

  11. song.id = item.data.songid;

  12. song.mid = item.data.songmid;

  13. song.name = item.data.songname;

  14. song.title = item.data.songorig;

  15. song.subTitle = '';

  16. song.singer = item.data.singer;

  17. song.album = album;

  18. song.time_public = item.time_public;

  19. song.img = 'http://y.gtimg.cn/music/photo_new/T002R150x150M000' + album.mid + '.jpg?max_age=2592000'

  20. list.push(song);

  21. }

  22. this.setData({

  23. songList: list

  24. })

  25. }

复制代码

  最好完成此页面里的点击事件:

  1. mainTopTap: function (e) {

  2. var list = this.data.songList;

  3. app.setGlobalData({ //使用全局变量playList来保存我们当前的list

  4. playList: list,

  5. playIndex: 0 //表示从第一首歌曲开始播放

  6. });

  7. wx.navigateTo({

  8. url: '../play/play' //跳转到播放页

  9. });

  10. },

  11. musicItemTap: function (e) {

  12. var dataSet = e.currentTarget.dataset;

  13. var index = dataSet.index; //获取点击的item的序号

  14. var list = this.data.songList;

  15. app.setGlobalData({

  16. playList: list,

  17. playIndex: index //从点击歌曲开始播放

  18. });

  19. wx.navigateTo({

  20. url: '../play/play'

  21. });

  22. },

读到这里,这篇"微信小程序音乐播放器页面渲染的方法"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

页面 代码 效果 方法 图片 播放器 程序 音乐 内容 按钮 文件 文章 视图 全局 函数 变量 布局 数据 文字 最好 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库所有表的权限 武汉软件软件开发开发 腾讯软件开发公司招聘 杭州珊瑚橙互联网科技有限公司 主动加被动的网络安全策略 计算机三级网络技术有笔试么 计算机网络技术学习视频 软件开发包图的作用 广州宸曜互联网科技有限公司 三沙软件开发 通信软件开发供应商 网络日志 网络安全法 dhcp服务器要怎样组成 永创网络技术服务部 杭州快门网络技术靠谱吗 计算机网络安全与防护第2版 湖北ipfs云服务器虚拟主机 网络安全博览会开幕式主题 学习数据库技术课程的目的 手机卡服务器通讯异常是为什么 什么是最基础的网络安全工作 服务器电源需要跑程序吗 本地服务器硬盘转移到云服务器 广西推广软件开发资格 服务器安全自主可控 移动通信用户位置数据库 浪潮服务器无法pe装机 怎样申请chfs数据库 家庭服务器安装什么系统 web基础软件开发与设计试题
0