iscroll5实现下拉加载更多

1 下载最新的iscroll5,本文版本是5.1.3

2 提取iscroll-probe.js,选择这个文件的原因是我们要给iscroll扩展一个事件,需要用到probeType 属性

3 修改iscroll-probe.js的源码,添加上拉监听事件slideUp (
iscroll 5 源码注释  http://www.ghugo.com/iscroll-5-source/)

4 编辑页面

Html:

1
2
3
4
5
6
7
8
9
10
"<div id='lookupScrollerWrapper'>"+
    "<div>"+
        "<div>"+
            "<ul data-role='listview' id='assListId0000'></ul>"+
        "</div>"+
        "<div id='lookupScrollerPullUp' style='display:none'>"+
            "<span>上拉加载更多</span>"+
        "</div>"+
    "</div>"+
"</div>"

css:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#lookupScrollerWrapper {
    position: absolute;
    top: 54px;
    bottom: 0px;
    width: 100%;
    overflow: hidden;
}
 
#lookupScrollerPullUp {
    height: 40px;
    line-height: 40px;
    font-size: 12px;
    font-weight: bold;
    color: grey;
    text-shadow: none;
    text-align:center;
    position:absolute;
    width:100%;
    bottom:-40px;
}

js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
lookupScroll = new IScroll('#lookupScrollerWrapper', { probeType: 3, mouseWheel: true, click: true });
         
lookupScroll.on("scroll", function() {
    if(this.maxScrollY - this.y >= 40){
        $("#lookupScrollerPullUp").css("display", "");
    }
});
 
lookupScroll.on("slideUp", function() {
    if(this.maxScrollY - this.y >= 40) {
        this.scrollTo(0, this.maxScrollY-47, 3000, IScroll.utils.ease.back);
        $(this)._associateKey();
    }
});
 
 $('#lookupScrollerWrapper').on('touchmove', function(){
    if(lookupScroll.maxScrollY - lookupScroll.y >= 40){
        $('#lookupScrollerPullUp').html("释放加载更多");
    }
 });
 
 $('#lookupScrollerWrapper').on('touchend', function(){
    if(lookupScroll.maxScrollY - lookupScroll.y >= 40){
        $('#lookupScrollerPullUp').html("正在加载..");
    } else {
        $('#lookupScrollerPullUp').html("上拉加载更多");
    }
 });

6 如果页面是动态编辑的,则要调用刷新的代码,否则页面不会滚动

lookupScroll.refresh();

 

posted @   Jager  阅读(2804)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示