最近剛(gang)好(hao)在集中(zhong)(zhong)scroll-view的文章和跳坑指南;今天(tian)介紹微(wei)信小程(cheng)序(xu)中(zhong)(zhong)scroll-view實(shi)現橫向滾(gun)動(dong)和上(shang)拉加載的實(shi)現及需(xu)要注意的地方。先看最終效果。橫向滾(gun)動(dong)1.設置滾(gun)動(dong)項(xiang)display:i ...
最近剛好在集中scroll-view的文章和跳坑指南;
今天介紹微信小程序中scroll-view實現橫向滾動和上拉加載的實現及需要注意的地方。
先(xian)看最終效果。

1.設置滾動項display:inline-block;
2.設置滾動視圖容器white-space: nowrap;
3.滾動項不要用(yong)float
為什么會有以上三(san)點要求(qiu)呢?
其實(shi)橫向滾(gun)動官方(fang)文(wen)檔(dang)中是(shi)沒有做太多說(shuo)明(ming)的(de)(de),只說(shuo)明(ming)需(xu)要(yao)(yao)定義(yi)(yi)scroll-view滾(gun)動方(fang)向scroll-x=true允許橫向滾(gun)動,但是(shi)我在實(shi)踐(jian)的(de)(de)時候我發(fa)現,你要(yao)(yao)橫向滾(gun)動,首先你得(de)是(shi)一排吧。所以(yi)才發(fa)現需(xu)要(yao)(yao)定義(yi)(yi)滾(gun)動項(xiang)(xiang)及容器的(de)(de)一些屬性,浮動是(shi)不能讓所有的(de)(de)滾(gun)動項(xiang)(xiang)一排顯示的(de)(de)。
<scroll-view scroll-y="true" bindscrolltolower="pullUpLoad" style="height: 58%;" class="content-wrap">實現(xian)上拉加載(zai),只需要綁定bindscrolltolower 事件處理(li),當(dang)(dang)滾動到(dao)底部/左邊(bian)的(de)(de)(de)時(shi)候,觸發(fa)這個(ge)處理(li)函數(shu)(shu),邏輯上就是去請求(qiu)下一頁的(de)(de)(de)數(shu)(shu)據,并且視圖上顯示正(zheng)在加載(zai)的(de)(de)(de)樣(yang)式(shi),當(dang)(dang)數(shu)(shu)據請求(qiu)成功(gong),將(jiang)其拼合到(dao)之前的(de)(de)(de)數(shu)(shu)據中,并隱藏(zang)正(zheng)在加載(zai)的(de)(de)(de)樣(yang)式(shi)。
//下拉(la)加(jia)載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 設(she)置 height。
那么我們想讓小程序滿屏滾動該如何設置高度呢,直接設置height:100%?好像不是很好用,原因是因為這個高度沒有參照物,以前我們是設置body的高度,類似,我們這里發現小程序頁面渲染出來的容器是Page,那我們就先設置Page的(de)高度(du)100%,再設置scroll-view高度(du)100%,問(wen)題得(de)到(dao)解決。
官方推(tui)薦的loading效果
onLoad:function(options){wx.showToast({title: '加載中',icon: 'loading',duration: 10000//loading時間(jian)});//wx.hideToast();隱藏loading}