代码:

  //页面上拉触底事件的处理函数
onReachBottom(e) {
console.log("底部")// 滚动到页面执行 该 方法
wx.showToast({
title: '加载中...',
icon: 'loading',
duration:
})
/*
这里执行你需要的请求数据追加到循环数组就好了
*/
},
onPageScroll(e) {
console.log(e) //滚动条 滚动的位置(e.scrollTop)从头部开始计算
},

原理:

上拉加载更多这个需求我相信应该应用颇为广泛的,今天说我认为两种可行的方式哈 。

一、第一个应该是最简单的一种实现方式,文档自带的一个api 可以监听滚动到页面底部的方法(onReachBottom) 、"onPageScroll"方法可以监听页面滚动条的位置。(PS:页面.json 中'onReachBottomDistance:number'默认为50,这个可以设置在距离底部多少px执行onReachBottom方法,具体使用看你需求。)
1.首先准备几个盒子 使其 超出page 页面高度产生滚动条、然后准备一个加载动画具体实现如下:

//wxml: arr是length为4的数组随意定义 只是为了撑高度的
<view class='warp'>
<view wx:for="{{arr}}" class='bg_cl'></view>
</view>
<!--加载动画 -->
<view class='bottom'>
<view class="loading">
<text></text>
<text></text>
<text></text>
<text></text>
<text></text>
</view>
</view>
// wxss ========================================
.warp{
display: flex;
flex-flow: column;}
.bg_cl{
width: %;
flex: ;
height: 400rpx;
background: pink;}
.bg_cl:nth-child(),.bg_cl:nth-child(){
background: purple;}
.bottom{
line-height: 50rpx;
font-size: 24rpx;
display: flex; align-items: center;
justify-content: center;} /*过渡动画 */
.loading{
width: 148rpx;
height: 44rpx;}
.loading text{
display: inline-block;
width: 20rpx;
height:20rpx;
margin-right: 5px;
border-radius: %;
background:#;
-webkit-animation: load .04s ease infinite;
}
.loading text:last-child{
margin-right: 0px;
}
@-webkit-keyframes load{
%{
opacity: ;
-webkit-transform: scale();
}
%{
opacity: 0.2;
-webkit-transform: scale(.);
}
}
.loading text:nth-child(){
-webkit-animation-delay:.13s;
}
.loading text:nth-child(){
-webkit-animation-delay:.26s;
}
.loading text:nth-child(){
-webkit-animation-delay:.39s;
}
.loading text:nth-child(){
-webkit-animation-delay:.52s;
}
.loading text:nth-child(){
-webkit-animation-delay:.65s;
} //js=========================================================
onReachBottom(e){
console.log("底部")// 滚动到页面执行 该 方法
wx.showToast({
title: '加载中...',
icon:'loading',
duration:
})
/*
这里执行你需要的请求数据追加到循环数组就好了
*/
},
onPageScroll(e){
//console.log(e) //滚动条 滚动的位置(e.scrollTop)从头部开始计算
},
 
 

第二种:可以用 scroll-view 组件,scroll-y为true 时允许纵向滚动、使用scroll-view 组件时需要设置固定的高度。组件中有一个bindscrolltolower 触底 /右边 方法。详情见官方文档(PS: 使用组件会在页面产生一个滚动条,而page中也会有一个此时会出现问题,可以在页面 .json配置文件中 设置:"disableScroll":true 页面整体不能上下滚动 等价于 wxss 中page{overflow:hidden} ;)

<!-- scroll-view  -->
<scroll-view scroll-y='true' style="height:{{height}}px" bindscroll='scrollt' bindscrolltolower='scrollBottom'>
<view class='warp'>
<view wx:for="{{arr}}" class='bg_cl'></view>
</view>
</scroll-view>
==============wxss 延用上方就好了 下方是js'=================
onLoad: function () {
var that=this
wx.getSystemInfo({
success:res=>{
console.log(res)
this.setData({
height: res.windowHeight //获取屏幕高度 赋值给scroll-view
})
}
})
},
//scroll- view 滚动条 距顶部多少px
scrollt(e){
console.log(e.detail)
},
// scroll-view 滚动到底部触发
scrollBottom(e){
console.log(" 我是scroll 的底部")
//此处添加你的 请求方法就好了 这里不多做赘述了。
}

.

微信小程序~上拉加载onReachBottom的更多相关文章

  1. 微信小程序上拉加载:onReachBottom详解+设置触发距离

    前端经常遇到上拉加载更多的需求,一般还涉及到翻页.小程序里已经给了下拉到底的触发方法onReachBottom(),这里记录下怎样使用这个方法实现下拉加载更多,有需要的直接看代码,有详细注释: 1.首 ...

  2. 微信小程序上拉加载下拉刷新

    微信小程序实现上拉加载下拉刷新 使用小程序默认提供方法. (1). 在xxx.json 中开启下拉刷新,需要设置backgroundColor,或者是backgroundTextStyle ,因为加载 ...

  3. 微信小程序 - 上拉加载下拉刷新

    点击下载示例:小程序 - 上拉刷新下拉加载

  4. 微信小程序 - 上拉加载

    demo.wxml  文件 <view wx:for="{{listdata}}" wx:key="listdata" class='listitem'& ...

  5. 微信小程序上拉加载——分页

    wxml: <view class="page"> <scroll-view class="imageViewCss_1" scroll-y= ...

  6. 微信小程序 - 上拉加载更多组件

    详情用例看demo,点击下载示例:loadmore

  7. 微信小程序之下拉加载和上拉刷新

    微信小程序下拉加载和上拉刷新两种实现方法 方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性       ...

  8. 微信小程序下拉加载和上拉刷新两种实现方法

    方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性 设置js里onPullDownRefresh和onR ...

  9. 微信小程序之上拉加载更多

    loadmore 加载更多(分页加载) 当用户打开一个页面时,假设后台数据量庞大时,一次性地返回所有数据给客户端,页面的打开速度就会有所下降,而且用户只看上面的内容而不需要看后面的内容时,也浪费用户流 ...

随机推荐

  1. PowerShell学习笔记

    1,ps7官方文档 2,使用脚本生成帮助文档 function Add-Node { param ( $selectedNode, $name, $tag ) $newNode = new-objec ...

  2. ThreadLocal源代码3

    public class ThreadLocal1<T> { //当创建了一个 ThreadLocal 的实例后,它的散列值就已经确定了, //threadLocal实例的hashCode ...

  3. git对某个文件取消跟踪

    git rm --cached readme1.txt    删除readme1.txt的跟踪,并保留在本地. git rm --f readme1.txt    删除readme1.txt的跟踪,并 ...

  4. 【洛谷5537】【XR-3】系统设计(哈希_线段树上二分)

    我好像国赛以后就再也没有写过 OI 相关的博客 qwq Upd: 这篇博客是 NOIP (现在叫 CSP 了)之前写的,但是咕到 CSP 以后快一个月才发表 -- 我最近这么咕怎么办啊 -- 题目 洛 ...

  5. 实用———springmvc接收参数校验

    https://www.cnblogs.com/funyoung/p/8670550.html https://www.cnblogs.com/monkeydai/p/10068547.html He ...

  6. JVM Server与Client运行模式

    JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升.原因是: 当虚拟机运行在-client模式的时候,使用的 ...

  7. C语言conio.h部分解释

    #include <conio.h> int getch(void);// 从控制台得到下一个字符,以ASCII值返回,并不在屏幕显示该字符 int getche(void);// 从控制 ...

  8. 【题解】Luogu P5360 [SDOI2019]世界地图

    原题传送门 每次查询的实际就是将地图的一个前缀和一个后缀合并后的图的最小生成树边权和 我们要预处理每个前缀和后缀的最小生成树 实际求前缀和(后缀和)的过程珂以理解为上一个前缀和这一列的最小生成树进行合 ...

  9. JUC-FutureTask

    得到别的线程任务的返回值 import lombok.extern.slf4j.Slf4j; import java.util.concurrent.Callable; import java.uti ...

  10. MVC学习笔记(三)—用EF向数据库中添加数据

    1.在EFDemo文件夹中添加Controllers文件夹(用的是上一篇MVC学习笔记(二)—用EF创建数据库中的项目) 2.在Controllers文件夹下添加一个空的控制器(StudentsCon ...