最近剛好在集中scroll-view的文章和跳坑指南;今天介紹微信小程序中scroll-view實現橫向滾動和上拉加載的實現及需要注意的地方。先看最終效果。橫向滾動1.設置滾動項display:i ...
最近剛好在集中scroll-view的文章和跳坑指南;
今天介紹微信小程序中scroll-view實現橫向滾動和上拉加載的實現及需要注意的地方。
先看最終效果。
1.設置滾動項display:inline-block;
2.設置滾動視圖容器white-space: nowrap;
3.滾動項不要用float
為什么會有以上三點要求呢?
其實橫向滾動官方文檔中是沒有做太多說明的,只說明需要定義scroll-view滾動方向scroll-x=true允許橫向滾動,但是我在實踐的時候我發現,你要橫向滾動,首先你得是一排吧。所以才發現需要定義滾動項及容器的一些屬性,浮動是不能讓所有的滾動項一排顯示的。
<scroll-view scroll-y="true" bindscrolltolower="pullUpLoad" style="height: 58%;" class="content-wrap">
實現上拉加載,只需要綁定bindscrolltolower 事件處理,當滾動到底部/左邊的時候,觸發這個處理函數,邏輯上就是去請求下一頁的數據,并且視圖上顯示正在加載的樣式,當數據請求成功,將其拼合到之前的數據中,并隱藏正在加載的樣式。
//下拉加載
pullUpLoad: function(){
var that = this;
console.log("====下拉====")
if (!that.data.hidden) {
that.data.params.pageNo += 1;
that.setData({
params: that.data.params,
})
if(that.data.params.pageNo <= that.data.totalPages){
that.setData({
hidden: true,
})
that.getShareList();
}else{
that.setData({
hidden: false,
})
}
}
}
文檔中說到:使用豎向滾動時,需要給一個固定高度,通過 WXSS 設置 height。
那么我們想讓小程序滿屏滾動該如何設置高度呢,直接設置height:100%?好像不是很好用,原因是因為這個高度沒有參照物,以前我們是設置body的高度,類似,我們這里發現小程序頁面渲染出來的容器是Page,那我們就先設置Page的高度100%,再設置scroll-view高度100%,問題得到解決。
官方推薦的loading效果
onLoad:function(options){
wx.showToast({
title: '加載中',
icon: 'loading',
duration: 10000//loading時間
});
//wx.hideToast();隱藏loading
}