iscroll.js实现上拉刷新,下拉加载更多,应用技巧项目实战

上拉刷新,下拉加载更多。。。仿原生的效果----iscroll是一款做滚动效果的插件,具体介绍我就不废话,看官方文档,我只写下我项目开发的一些用到的用法:

(如果不好使,调试你的css,想必是个很蛋疼的问题,给点提示 :#wrapper,以及#scroller-content要注意)

html如下:

 <div class="viewport">
        <div id="wrapper" class="wrapper">
            <div id="scroller">
                <div id="scroller-pullDown">
                    <span id="down-icon" class="pull-down-icon fa fa-refresh fa-spin fa-fw"></span>
                    <span id="pullDown-msg" class="pull-down-msg">下拉刷新</span>
                </div>
                <div id="scroller-content">
                      //你写的内容在这里
                </div>
                <div id="scroller-pullUp">
                    <span id="up-icon" class="pull-up-icon fa fa-spinner fa-spin fa-fw"></span>
                    <span id="pullUp-msg" class="pull-up-msg">上拉加载</span>
                </div>
            </div>
        </div>
    </div>

css如下:

/* =================iscroll================================= */

#wrapper {
    position: absolute;
    z-index: 1;
    top: 210*@size;
    bottom: 0px;
    left: 0;
    width: 100%;
    overflow: hidden;
}

#scroller {
    position: absolute;
    z-index: 1;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    width: 100%;
    -webkit-transform: translateZ(0);
    -moz-transform: translateZ(0);
    -ms-transform: translateZ(0);
    -o-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-text-size-adjust: none;
    -moz-text-size-adjust: none;
    -ms-text-size-adjust: none;
    -o-text-size-adjust: none;
    text-size-adjust: none;
}

#scroller-pullDown,
#scroller-pullUp {
    background: #333333;
    height: 50px;
    line-height: 50px;
    border-bottom: 1px solid #ccc;
    font-weight: bold;
    font-size: 14px;
    color: #888;
    text-align: center;
    position: absolute;
    left: 0px;
    width: 100%;
}

#scroller-pullDown {
    top: -50px;
}

#scroller-pullUp {
    bottom: -50px;
}

.pull-up-msg,
.pull-down-msg {
    padding-left: 5px;
    position: relative;
    top: 0px;
}

#scroller-pullDown .pull-down-icon,
#scroller-pullUp .pull-up-icon {
    display: inline-block;
    color: #e84c3d;
    font-size: 16px;
}

js代码看这里:

    function pushData(m) {
        var m = m || 10;
        if (flag) {         //发送Ajax,循环自己的数据加载:
           $.myGET(uri, {formData}, function (data) {
            if (data.result) {
                for (var i = 0; i < data.package.length; i++) {
                    data.package[i].isPass ? data.package[i].isPass = "pass" : data.package[i].isPass = "unpass";
                    temp = ‘<li>‘ + ‘<span class="item ellips">‘ + data.package[i].planName + ‘</span>‘ + ‘<span class="time">‘ + ‘2017.03.08‘ + ‘</span>‘ + ‘<span class="score">‘ + data.package[i].score + ‘</span>‘ + ‘<span class="status"><img src="/images/mainFrame/icon_result_‘ + data.package[i].isPass + ‘.png" ></span>‘ + ‘<li>‘;
                   $("#target").append(temp);
                }
                if (m * n > data.total) {
                    $("#pullUp-msg").text("已无更多数据");
                    flag = false;
                    return false;
                }
            }

    }

    (function(window) {
        var myScroll,
            upIcon = $("#up-icon"),
            downIcon = $("#down-icon"),
            target = $("#target"),
            temp = " ";

        myScroll = new IScroll(‘#wrapper‘, {
            probeType: 3,
            mouseWheel: true
        });

        myScroll.on("scroll", function() {
            var y = this.y,
                maxY = this.maxScrollY - y,
                downHasClass = downIcon.hasClass("reverse_icon"),
                upHasClass = upIcon.hasClass("reverse_icon");

            if (y >= 40) {
                !downHasClass && downIcon.addClass("reverse_icon");
                return "";
            } else if (y < 40 && y > 0) {
                downHasClass && downIcon.removeClass("reverse_icon");
                return "";
            }

            if (maxY >= 40) {
                !upHasClass && upIcon.addClass("reverse_icon");
                return "";
            } else if (maxY < 40 && maxY >= 0) {
                upHasClass && upIcon.removeClass("reverse_icon");
                return "";
            }
        });
        //下拉逻辑在这里!
        myScroll.on("slideDown", function() {
            if (this.y > 40) {
                window.location.reload();
            }
        });

        //上拉逻辑在这里!
        myScroll.on("slideUp", function() {
            if (this.maxScrollY - this.y > 40) {
                pushData();
                myScroll.refresh();
            }
        });

    })(window)
时间: 2024-10-12 03:05:26

iscroll.js实现上拉刷新,下拉加载更多,应用技巧项目实战的相关文章

IOS学习之UiTableView下拉刷新与自动加载更多,百年不变的效果

IOS学习之UiTableView下拉刷新与自动加载更多,百年不变的效果(五) 五一劳动节马上来临,小伙伴有妹有很激动哟,首先祝天下所有的程序猿节日快乐!这个五一对于我来说有点不一样,我的人生从这个五一就转弯了,爱情长跑8年的我结婚了,一会支付宝账号我会公布出去,请自觉打款!谢谢合作. 灯光闪起来: 舞蹈跳起来: 歌曲唱起来: -------------------------------------------------------------------------------------

Android下拉刷新库,利用viewdraghelper实现,集成了下拉刷新,底部加载更多,数据初始加载显示loading等功能

项目Github地址:https://github.com/sddyljsx/pulltorefresh Android下拉刷新库,利用viewdraghelper实现. 集成了下拉刷新,底部加载更多,以及刚进入加载数据的loadview.包括了listview与gridview的改写. 效果1: 效果2: 效果3: 效果4: 效果5: 使用说明: imageList=(ListView)findViewById(R.id.image_list); imageAdapter=new ImageA

Android ListView 下拉刷新 点击加载更多

最近项目中用到了ListView的下拉刷新的功能,总结了一下前辈们的代码,单独抽取出来写了一个demo作为示例. 效果图 下拉刷新: 加载更多: CustomListView.java [java] view plaincopy package com.example.uitest.view; import java.util.Date; import com.example.uitest.R; import android.content.Context; import android.uti

支持下拉刷新和上划加载更多的自定义RecyclerView(仿XListView效果)

首先看效果 下拉刷新:        上划加载        在项目更新的过程中,遇到了一个将XListView换成recyclerView的需求,而且更换完之后大体效果不能变,但是对于下拉刷新这样的效果,谷歌给出的解决方案是把RecyclerView放在一个SwipeRefreshLayout中,但是这样其实是拉下一个小圆形控件实现的,和XListView的header效果不同.在网上找了很多的别人代码,都没有实现我想要的效果,于是自己动手写了一个. 具体实现的效果有以下几条 下拉刷新功能:

Android 自定义 ListView 上下拉动&ldquo;刷新最新&rdquo;和&ldquo;加载更多&rdquo;歌曲列表

本文内容 环境 测试数据 项目结构 演示 参考资料 本文演示,上拉刷新最新的歌曲列表,和下拉加载更多的歌曲列表.所谓"刷新最新"和"加载更多"是指日期.演示代码太多,点击此处下载,自己调试一下. 下载 Demo 环境 Windows 2008 R2 64 位 Eclipse ADT V22.6.2,Android 4.4.3 SAMSUNG GT-I9008L,Android OS 2.2.2 测试数据 本演示的歌曲信息,共有 20 条,包括歌手名.歌曲名.时长.缩

jQuery手机端上拉刷新下拉加载更多页面

<!doctype html> <html> <head> <title>jquery 手机端上拉刷新下拉加载更多页面</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta name="viewpost" content="width=device-wi

安卓,采用最简单易懂的方式实现上拉刷新下拉加载更多

<!-- Description:上拉刷新,下拉加载更多是现在最流行的手势操作,但是对于初学者来说,在实现上是有一定难度的, 网上很多教程讲的都过于复杂,对于初学者无法起到引导作用,特此写本文,帮助安卓新手入门理解此, 还有最为重要的一点:本文只帮助你理解,并不是想你成为代码搬运工!别被那么多代码吓到了, 其中很多都是注释,仔细看注释对你理解有很大的帮助 Author:Booker L Date:2014-05-16 --> 一,事先准备: 实现该功能,最基本的需要两个东西,一个是OnTouc

Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载

随着 Google 推出了全新的设计语言 Material Design,还迎来了新的 Android 支持库 v7,其中就包含了 Material Design 设计语言中关于 Card 卡片概念的实现 -- CardView.RecyclerView也是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓存. RecyclerView的优点就是,他可以通过设置LayoutMan

PullToRefreshRecyclerView——带上拉刷新下拉加载功能的RecyclerView

PullToRefreshRecyclerView——带上拉刷新下拉加载功能的RecyclerView

新浪微博项目---首页技术点三.上拉刷新,下拉加载的实现(使用ios自带的小菊花实现)

一.上拉刷新,下拉加载的实现(使用ios自带的小菊花实现) 1.下拉刷新 #pragma mark ---集成下*拉刷新控件 -(void)setupDownRefresh { //1.添加刷新控件 UIRefreshControl *control = [[UIRefreshControl alloc] init]; //只有用户通过手动下拉刷新,才会触发UIControlEventValueChanged事件 [control addTarget:self action:@selector(