您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“微信小程序音樂播放器頁面渲染的方法”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當(dāng),希望這篇“微信小程序音樂播放器頁面渲染的方法”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
頁面渲染
為了解決這個問題,我們給圖片添加一個漸變的遮罩,就像圖10-8那樣,這樣到達文字部分時,背景就變成了黑色,不會影響文字的顯示,而且達到了由圖片到底下列表顏色漸變的效果,非常美觀。
這個效果主要靠我們的格式文件實現(xiàn),我們先寫我們熟悉的部分。
.list-top {
position: relative;
height: 100%;
}
.list-top::after {
content: " ";
display: block;
padding-top: 100%;
}
.top-info {
position: absolute;
bottom: 0;
width: 100%;
z-index: 3;
}
.top-img {
width: 100%;
height: 100%;
position: absolute;
}
.top-info-inner {
display: -webkit-box;
-webkit-box-align: center;
margin: 0 15px 25px;
color: #fff;
}
.top-info-text {
-webkit-box-flex: 1;
margin-right: 10px;
}
.top-info-title {
font-size: 24px;
line-height: 36px;
white-space: nowrap;
overflow: hidden;
}
.top-info-base {
font-size: 14px;
line-height: 20px;
}
復(fù)制代碼
“::after”表示在“.list-top”后邊添加,為了是在不修改布局文件的情況下,添加視圖以達到美化的效果。
我們需要添加的遮罩為布局里“top—back”這部分,格式文件為:
.tl-top-b {
position: absolute;
bottom: 0;
width: 100%;
background-image: -webkit-linear-gradient(top,transparent,currentColor 80%);
}
.tl-top-b::after {
content: " ";
display: block;
padding-top: 60%;
}
復(fù)制代碼
-webkit-linear-gradient(top,transparent,currentColor 80%)這行代碼為我們建立了線性漸變的效果,這樣我們的圖片底部就會出現(xiàn)漸變?yōu)楹谏男Ч恕?/span>
剩下播放按鈕的樣式,這里因為用到了漸變的遮罩和背景圖,為了達到最好的效果,這個按鈕就不能用圖片來顯示了,我們使用代碼來創(chuàng)建一個播放按鈕。
.tl-top-play {
position: relative;
display: block;
width: 42px;
height: 42px;
margin-left: 10px;
border: solid 3px;
border-radius: 999px;
}
.tl-top-play::after {
content: " ";
position: absolute;
left: 50%;
top: 50%;
margin-top: -10px;
margin-left: -5px;
display: inline-block;
vertical-align: middle;
width: 0;
height: 0;
border-style: solid;
border-width: 10px 16px;
border-color: transparent transparent transparent #fff;
}
復(fù)制代碼
視圖建立完畢,開始為視圖填充數(shù)據(jù)。
//加載網(wǎng)絡(luò)請求函數(shù)
var MusicService = require('../../services/music');
//獲取應(yīng)用實例
var app = getApp();
Page({
data: {
// text:"這是一個頁面"
songList: [],
imgUrl: '',
id: 0,
topinfo: {},
update_time: '',
},
onLoad: function (options) {
// 頁面初始化 options為頁面跳轉(zhuǎn)所帶來的參數(shù)
var self = this;
var id = app.globalData.topListId;
this.setData({
id: id
});
MusicService.getTopListInfo(id, this.getTopListCallback)
},
})
復(fù)制代碼
這里我們獲取了保存于全局變量里的topListId(即我們點擊的排行分類的ID),然后使用這個ID請求網(wǎng)絡(luò)。
getTopListCallback: function (data) {
var imgUrl = data.topinfo.pic_album;
this.setData({
topinfo: data.topinfo,
update_time: data.update_time
});
this.setSongList(data.songlist);
},
復(fù)制代碼
使用回調(diào)函數(shù)為我們的data賦值之后,這里調(diào)用了setSongList這個方法,通過這個方法我們把返回數(shù)據(jù)里我們需要的內(nèi)容保存到songList里。
setSongList: function (songs) {
var list = [];
for (var i = 0; i < songs.length; i++) {
var item = songs[i];
var song = {};
var album = {};
album.mid = item.data.albummid
album.id = item.data.albumid
album.name = item.data.albumname;
album.desc = item.data.albumdesc
song.id = item.data.songid;
song.mid = item.data.songmid;
song.name = item.data.songname;
song.title = item.data.songorig;
song.subTitle = '';
song.singer = item.data.singer;
song.album = album;
song.time_public = item.time_public;
song.img = 'http://y.gtimg.cn/music/photo_new/T002R150x150M000' + album.mid + '.jpg?max_age=2592000'
list.push(song);
}
this.setData({
songList: list
})
}
復(fù)制代碼
最好完成此頁面里的點擊事件:
mainTopTap: function (e) {
var list = this.data.songList;
app.setGlobalData({ //使用全局變量playList來保存我們當(dāng)前的list
playList: list,
playIndex: 0 //表示從第一首歌曲開始播放
});
wx.navigateTo({
url: '../play/play' //跳轉(zhuǎn)到播放頁
});
},
musicItemTap: function (e) {
var dataSet = e.currentTarget.dataset;
var index = dataSet.index; //獲取點擊的item的序號
var list = this.data.songList;
app.setGlobalData({
playList: list,
playIndex: index //從點擊歌曲開始播放
});
wx.navigateTo({
url: '../play/play'
});
},
讀到這里,這篇“微信小程序音樂播放器頁面渲染的方法”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。