微信小程序~上拉加载onReachBottom
代码:
//页面上拉触底事件的处理函数
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的更多相关文章
- 微信小程序上拉加载:onReachBottom详解+设置触发距离
前端经常遇到上拉加载更多的需求,一般还涉及到翻页.小程序里已经给了下拉到底的触发方法onReachBottom(),这里记录下怎样使用这个方法实现下拉加载更多,有需要的直接看代码,有详细注释: 1.首 ...
- 微信小程序上拉加载下拉刷新
微信小程序实现上拉加载下拉刷新 使用小程序默认提供方法. (1). 在xxx.json 中开启下拉刷新,需要设置backgroundColor,或者是backgroundTextStyle ,因为加载 ...
- 微信小程序 - 上拉加载下拉刷新
点击下载示例:小程序 - 上拉刷新下拉加载
- 微信小程序 - 上拉加载
demo.wxml 文件 <view wx:for="{{listdata}}" wx:key="listdata" class='listitem'& ...
- 微信小程序上拉加载——分页
wxml: <view class="page"> <scroll-view class="imageViewCss_1" scroll-y= ...
- 微信小程序 - 上拉加载更多组件
详情用例看demo,点击下载示例:loadmore
- 微信小程序之下拉加载和上拉刷新
微信小程序下拉加载和上拉刷新两种实现方法 方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性 ...
- 微信小程序下拉加载和上拉刷新两种实现方法
方法一:onPullDownRefresh和onReachBottom方法实现小程序下拉加载和上拉刷新 首先要在json文件里设置window属性 设置js里onPullDownRefresh和onR ...
- 微信小程序之上拉加载更多
loadmore 加载更多(分页加载) 当用户打开一个页面时,假设后台数据量庞大时,一次性地返回所有数据给客户端,页面的打开速度就会有所下降,而且用户只看上面的内容而不需要看后面的内容时,也浪费用户流 ...
随机推荐
- adb 命令简介
adb命令配置 1 在命令行下,进入用户目录 cd $HOME 2 .bash_profile文件 输入下行命令获取当前文件列表: ls -al 查看文件列表,如果没有.bash_profile文件, ...
- 搭建基于docker 的redis分布式集群在docker for windows
https://blog.csdn.net/xielinrui123/article/details/85104446 首先在docker中下载使用 docker pull redis:3.0.7do ...
- 【转】【bat】Bat 中特殊符号
批处理.Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用: @\\隐藏命令的回显. ~\\在for中表示使用增强的变量扩展:在set中表示使用扩展环境变量指定位置的字符串:在set ...
- IDEA配置类签名
- 004 Thymeleaf学习笔记
1.Thymeleaf概述 SpringBoot并不推荐使用jsp,但是支持一些模板引擎技术:Freemarker.Thymeleaf.Mustache. 简单说, Thymeleaf 是一个跟 Ve ...
- SQL Server 数据库启动过程,以及启动不起来的各种问题的分析及解决技巧
目前SQL Server数据库作为微软一款优秀的RDBMS,其本身启动的时候是很少出问题的,我们在平时用的时候,很少关注起启动过程,或者很少了解其底层运行过程,大部分的过程只关注其内部的表.存储过程. ...
- logback--日志在windows上可以打印,在linux上不能打印的问题
解决问题方法: 本人遇到的问题,属于jar包冲突问题.本人加入的jar包如下: slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5.jar logback-core-1.0 ...
- python并发编程之IO模型 同步 异步 阻塞 非阻塞
IO浅谈 首先 我们在谈及IO模型的时候,就必须要引入一个“操作系统”级别的调度者-系统内核(kernel),而阻塞非阻塞是跟进程/线程严密相关的,而进程/线程又是依赖于操作系统存在的,所以自然不能脱 ...
- eclipse创建springboot项目的三种方法
本文链接:https://blog.csdn.net/mousede/article/details/81285693 方法一 安装STS插件 安装插件导向窗口完成后,在eclipse右下角将会出现安 ...
- Java中守护线程的总结
在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆: 只要当前JVM实例中尚存 ...