今天介紹微信小程序中scroll-view實(shí)現(xiàn)橫向滾動(dòng)和上拉加載的實(shí)現(xiàn)及需要注意的地方。
先看最終效果。
橫向滾動(dòng)
1.設(shè)置滾動(dòng)項(xiàng)display:inline-block;
2.設(shè)置滾動(dòng)視圖容器white-space: nowrap;
3.滾動(dòng)項(xiàng)不要用float
為什么會(huì)有以上三點(diǎn)要求呢?
其實(shí)橫向滾動(dòng)官方文檔中是沒有做太多說(shuō)明的,只說(shuō)明需要定義scroll-view滾動(dòng)方向scroll-x=true允許橫向滾動(dòng),但是我在實(shí)踐的時(shí)候我發(fā)現(xiàn),你要橫向滾動(dòng),首先你得是一排吧。所以才發(fā)現(xiàn)需要定義滾動(dòng)項(xiàng)及容器的一些屬性,浮動(dòng)是不能讓所有的滾動(dòng)項(xiàng)一排顯示的。
上拉加載
實(shí)現(xiàn)上拉加載,只需要綁定bindscrolltolower 事件處理,當(dāng)滾動(dòng)到底部/左邊的時(shí)候,觸發(fā)這個(gè)處理函數(shù),邏輯上就是去請(qǐng)求下一頁(yè)的數(shù)據(jù),并且視圖上顯示正在加載的樣式,當(dāng)數(shù)據(jù)請(qǐng)求成功,將其拼合到之前的數(shù)據(jù)中,并隱藏正在加載的樣式。
- //下拉加載
- 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,
- })
- }
- }
- }
如何設(shè)置scroll-view滿屏滾動(dòng)
文檔中說(shuō)到:使用豎向滾動(dòng)時(shí),需要給一個(gè)固定高度,通過(guò) WXSS 設(shè)置 height。
那么我們想讓小程序滿屏滾動(dòng)該如何設(shè)置高度呢,直接設(shè)置height:100%?好像不是很好用,原因是因?yàn)檫@個(gè)高度沒有參照物,以前我們是設(shè)置body的高度,類似,我們這里發(fā)現(xiàn)小程序頁(yè)面渲染出來(lái)的容器是Page,那我們就先設(shè)置Page的高度100%,再設(shè)置scroll-view高度100%,問(wèn)題得到解決。
官方推薦的loading效果
- onLoad:function(options){
- wx.showToast({
- title: '加載中',
- icon: 'loading',
- duration: 10000//loading時(shí)間
- });
- //wx.hideToast();隱藏loading
- }
|
新聞熱點(diǎn)
疑難解答
圖片精選