日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

swiper 上滑触发_四种方式快速实现上滑触底加载效果

發(fā)布時間:2025/3/12 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 swiper 上滑触发_四种方式快速实现上滑触底加载效果 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在智能小程序的開發(fā)過程中,上拉加載是一種十分常見的加載效果,最近也收到了一些開發(fā)者在開發(fā)上拉加載時遇到的問題,今天的內(nèi)容就為您介紹一下如果想實現(xiàn)下述效果的上拉加載,我們需要如何去做。

以下是為大家總結(jié)的四種常見的實現(xiàn)方式:

使用 onReachBottom 實現(xiàn)

智能小程序提供了onReachBottom,即頁面上拉觸底事件的處理函數(shù)。可以拿在 Page 中定義 onReachBottom 處理函數(shù),監(jiān)聽該頁面用戶上拉觸底事件,從而實現(xiàn)上拉加載。

為方便大家直接使用看到效果,將下述代碼片段,直接導入開發(fā)者工具中運行查看即可:

swanide://fragment/7e944c0c3785bbdf4437c672dd0dc8e41584413934361

代碼解析

swan 文件是每個智能小程序頁面的展現(xiàn)模板,類似于 Web 開發(fā)中的 HTML,所以我們先在 swan 文件中設(shè)置商品的展現(xiàn)樣式:

{{item.title}}

努力加載中...

復制代碼

在 js 文件中使用onReachBottom事件,當頁面滑動到頁面底部時,請求下一頁展示數(shù)據(jù),即實現(xiàn)上拉加載的效果。

...

...

onReachBottom() {

//觸底時繼續(xù)請求下一頁展示的數(shù)據(jù)

this.initData();

}

復制代碼

使用 scroll-view 組件實現(xiàn)

利用 scroll-view 組件實現(xiàn)上拉加載也是一種十分常見的方法,實現(xiàn)步驟與使用onReachBottom事件類似。

scroll-view是百度智能小程序提供的組件,可實現(xiàn)試圖區(qū)域的橫向滾動和豎向滾動。使用它的bindscrolltolower屬性,當頁面滾動到底部或右邊的時候,則會觸發(fā)scrolltolower事件,從而實現(xiàn)上拉加載的效果。

為方便大家直接使用看到效果,將下述代碼片段,直接導入開發(fā)者工具中運行查看即可:

swanide://fragment/fccd71b098a7d3921b9958ccd9dba1071584414516291

代碼解析

在 swan 文件中使用 scroll-view 組件,設(shè)置商品的展現(xiàn)樣式。當頁面滑動至底部時,觸發(fā)scrolltolower事件,實現(xiàn)試圖區(qū)域的豎向滾動。

```

class="scrollview"

scroll-y

bindscrolltolower="scrolltolower"

>

{{item.title}}

努力加載中...

```

復制代碼

使用信息流模板實現(xiàn)上拉加載

信息流模版是百度智能小程序提供的組件,可配置上拉刷新、列表加載、上拉加載功能,適用于列表信息展示,并可放置在頁面的任何部分。

與其它組件功能不同,使用信息流模板時需執(zhí)行下述命令行,引入頁面模板。

npm i @smt-ui-template/page-feed

復制代碼

并在進入page-feed文件夾后,執(zhí)行下述命令行安裝所有模板依賴。

npm i

復制代碼為方便大家直接使用看到效果,將下述代碼片段,直接導入開發(fā)者工具中運行查看即可:

swanide://fragment/71af2b7f470b29b13f792c417fc5f03c1588757790402

代碼解析

在 swan 文件中使用信息流模板,通過 smt-spin 組件加載更多數(shù)據(jù)。

class="smt-feed pull-down-refresh"

pull-to-refresh

bind:scrolltolower="scrollToLower"

text="{{text}}"

style="height: 100vh"

>

{{item.title}}

復制代碼在js文件中,利用在smt-spin組件上綁定的事件,實現(xiàn)加載更多的數(shù)據(jù)。

...

...

async scrollToLower() {

const goods = await this.initData();

await syncSetData(this, {

goods: goods.concat(this.data.goods || [])

});

},

...

...

復制代碼

使用 swiper 組件配合 onReachBottom 實現(xiàn)上拉加載

使用 swiper 組件配合 onReachBottom 的實現(xiàn)方法也比較常見,相較上邊兩種實現(xiàn)方式有些復雜,但同時也可以實現(xiàn)更加復雜的上拉加載場景。

swiper 組件是智能小程序提供的滑塊視圖組件,與 swiper-item 組件配合使用,可實現(xiàn) swiper 組件內(nèi) swiper-item 的滑動。需要動態(tài)設(shè)置 swiper 組件的高度,來保證每次滑動到底時都能觸發(fā) onReachBottom 。

為方便大家直接使用看到效果,將下述代碼片段,直接導入開發(fā)者工具中運行查看即可:

swanide://fragment/20e8fd8c561418df7c4f24a850bf43461585224391100

代碼解析

根據(jù)實際場景需要在 swan 文件中設(shè)置 tab,當設(shè)置多個tab時,實現(xiàn)效果如下:

Tab1

Tab2

復制代碼在 swan 文件中使用 swiper、swiper-item 組件。

{{item.title}}

努力加載中...

{{item.title}}

努力加載中...

復制代碼在 js 文件中設(shè)置 swiper 組件的高度。

// 給image添加load事件,保證圖片全部加載出來再計算swiper-item的高度并賦值給swiper

imageLoad() {

let len = this.data.goods.length;

this.setData({

imgLoadNum: ++ this.data.imgLoadNum

})

if(this.data.imgLoadNum === len){

this.queryNodeInfo();

}

},

// 設(shè)置swiper的高度,如果不動態(tài)設(shè)置swiper的高度,當頁面滑動到底部時,不會觸發(fā)onReachBottom

queryNodeInfo: function(){

let currentTab = this.data.currentTab;

swan.createSelectorQuery().selectAll('.item').boundingClientRect((rect) => {

this.setData({

swiperH: rect[currentTab].height + 'px'

})

}).exec();

}

復制代碼在 js 文件中使用onReachBottom事件,當頁面滑動到頁面底部時,請求下一頁展示數(shù)據(jù),即實現(xiàn)上拉加載的效果。

onReachBottom() {

this.initData();

},

復制代碼

總結(jié)

使用方法 1、2、3 可快速實現(xiàn)簡單頁面的上拉加載;而使用方法 4 可實現(xiàn)頁面中存在多個 tab 的場景,比如:最新、最熱列表的切換。開發(fā)者可根據(jù)實際情況選擇不同的實現(xiàn)方法。

最后,感謝各位開發(fā)者積極投身百度小程序的開發(fā)當中,在開發(fā)過程中有任何問題都可以在社區(qū)與官方或其他開發(fā)者進行互動,也可將您的意見發(fā)送郵件至smartprogramtech@baidu.com,期待您的參與!

總結(jié)

以上是生活随笔為你收集整理的swiper 上滑触发_四种方式快速实现上滑触底加载效果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。