中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序音樂播放器頁面渲染的方法

發布時間:2022-03-09 10:14:12 來源:億速云 閱讀:237 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“微信小程序音樂播放器頁面渲染的方法”,內容詳細,步驟清晰,細節處理妥當,希望這篇“微信小程序音樂播放器頁面渲染的方法”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

  頁面渲染

  為了解決這個問題,我們給圖片添加一個漸變的遮罩,就像圖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.  

  22. .top-info-inner {

  23.     display: -webkit-box;

  24.     -webkit-box-align: center;

  25.     margin: 0 15px 25px;

  26.     color: #fff;

  27. }

  28.  

  29. .top-info-text {

  30.     -webkit-box-flex: 1;

  31.     margin-right: 10px;

  32. }

  33. .top-info-title {

  34.     font-size: 24px;

  35.     line-height: 36px;

  36.     white-space: nowrap;

  37.     overflow: hidden;

  38. }

  39. .top-info-base {

  40.     font-size: 14px;

  41.     line-height: 20px;

  42. }

復制代碼

  “::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.  

  6. Page({

  7.     data: {

  8.         // text:"這是一個頁面"

  9.         songList: [],

  10.         imgUrl: '',

  11.         id: 0,

  12.         topinfo: {},

  13.         update_time: '',

  14.     },

  15.     onLoad: function (options) {

  16.         // 頁面初始化 options為頁面跳轉所帶來的參數

  17.         var self = this;

  18.         var id = app.globalData.topListId;

  19.         this.setData({

  20.             id: id

  21.         });

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

  23.     },

  24. })

復制代碼

  這里我們獲取了保存于全局變量里的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.  

  8.             album.mid = item.data.albummid

  9.             album.id = item.data.albumid

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

  11.             album.desc = item.data.albumdesc

  12.  

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

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

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

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

  17.             song.subTitle = '';

  18.             song.singer = item.data.singer;

  19.             song.album = album;

  20.             song.time_public = item.time_public;

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

  22.             list.push(song);

  23.         }

  24.         this.setData({

  25.             songList: list

  26.         })

  27.     }

復制代碼

  最好完成此頁面里的點擊事件:

  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.     },

讀到這里,這篇“微信小程序音樂播放器頁面渲染的方法”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

明光市| 察哈| 灌云县| 扎赉特旗| 新安县| 仁化县| 安岳县| 勐海县| 渭源县| 惠州市| 邵阳市| 赤峰市| 勃利县| 玛多县| 邹平县| 搜索| 宜昌市| 镇沅| 平阳县| 自贡市| 瑞丽市| 偏关县| 保亭| 河源市| 玉门市| 兴化市| 蕉岭县| 井研县| 山东省| 仲巴县| 西乡县| 平江县| 德州市| 广德县| 龙游县| 遂昌县| 龙泉市| 米泉市| 萨迦县| 金坛市| 玛沁县|