微信小程序scroll-view實(shí)現(xiàn)橫向滾動(dòng)和上拉加載示例
今天介紹微信小程序中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)官方文檔中是沒(méi)有做太多說(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)一排顯示的。
上拉加載
<scroll-view scroll-y="true" bindscrolltolower="pullUpLoad" style="height: 58%;" class="content-wrap">
實(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è)高度沒(méi)有參照物,以前我們是設(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
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript中的this/call/apply/bind的使用及區(qū)別
這篇文章主要介紹了JavaScript中的this/call/apply/bind的使用及區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
數(shù)據(jù)結(jié)構(gòu)中的各種排序方法小結(jié)(JS實(shí)現(xiàn))
下面小編就為大家?guī)?lái)一篇數(shù)據(jù)結(jié)構(gòu)中的各種排序方法小結(jié)(JS實(shí)現(xiàn))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07
JavaScript實(shí)現(xiàn)繼承的7種方式總結(jié)
用官方點(diǎn)的話講繼承是面向?qū)ο笕筇卣髦唬梢允沟米宇惥哂懈割惖膶傩院头椒?,同時(shí)還可以在子類中重新定義以及追加屬性和方法。本文整理了JavaScript實(shí)現(xiàn)繼承的7種方式,需要的可以了解一下2023-04-04
讓插入到 innerHTML 中的 script 跑起來(lái)的實(shí)現(xiàn)代碼
在做 ajax 編程時(shí),我們常常需要將 xmlhttp 獲取到的頁(yè)面內(nèi)容通過(guò) innerHTML 來(lái)賦給某個(gè)容器(比如 div、span 或者 td 等),但是這里存在一個(gè)問(wèn)題,就是我們將要賦給 innerHTML 的頁(yè)面內(nèi)容如果包含有腳本程序,這些腳本程序不管是外部腳本,還是內(nèi)部腳本,可能(1)都不會(huì)被執(zhí)行。2006-07-07
小程序hover-class點(diǎn)擊態(tài)效果實(shí)現(xiàn)
這篇文章主要介紹了小程序hover-class點(diǎn)擊態(tài)效果實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
JS 兩個(gè)字符串時(shí)間的天數(shù)差計(jì)算
本文為大家介紹下兩個(gè)字符串時(shí)間的天數(shù)差的計(jì)算公式,感興趣的朋友可以參考下2013-08-08
一個(gè)Action如何調(diào)用兩個(gè)不同的方法
這篇文章主要介紹了一個(gè)Action如何調(diào)用兩個(gè)不同的方法,需要的朋友可以參考下2014-05-05

