mescroll 上拉加载和下拉刷新

8 篇文章 0 订阅
2 篇文章 0 订阅

mescroll官网:http://www.mescroll.com
mescroll文档:http://www.mescroll.com/api.html?v=20200315
js和css到官网下载

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
    <meta name="referrer" content="no-referrer" />
    <title>测试上拉加载=下拉刷新</title>
    <link rel="stylesheet" href="dist/mescroll.min.css">
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
            -webkit-touch-callout:none;
            -webkit-user-select:none;
            -webkit-tap-highlight-color:transparent;
            font-size: .14rem;
        }
        body{background-color: white}
        ul{list-style-type: none}
        a {text-decoration: none;color: #18B4FE;}
        
        /*模拟的标题*/
        .header{
            z-index: 9990;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 44px;
            line-height: 44px;
            text-align: center;
            border-bottom: 1px solid #eee;
            background-color: white;
            font-size: .16rem;
        }
        .header .btn-left{
            position: absolute;
            top: 0;
            left: 0;
            padding:12px;
            line-height: 22px;
        }
        .header .btn-right{
            position: absolute;
            top: 0;
            right: 0;
            padding: 0 12px;
        }
        /*说明*/
        .mescroll .notice{
            font-size: 14px;
            padding: 20px 0;
            border-bottom: 1px solid #eee;
            text-align: center;
            color:#555;
        }
        /*列表*/
        .mescroll{
            position: fixed;
            top: 44px;
            bottom: 0;
            height: auto;
        }
        /*展示上拉加载的数据列表*/
        .news-list li{
            padding: 16px;
            border-bottom: 1px solid #eee;
        }
        .news-list .new-content{
            font-size: 14px;
            margin-top: 6px;
            margin-left: 10px;
            color: #666;
        }
    </style>
</head>
<body>

    <!--标题-->
    <p class="header">新闻列表</p>
    <!--滑动区域-->
    <div id="mescroll" class="mescroll">
<!-- 			<p class="notice">本Demo的下拉刷新: 添加新数据到列表顶部</p> -->
        <ul id="newsList" class="news-list">
            <!--<li>
                <p>【新闻1】标题标题标题标题</p>
                <p class="new-content">内容内容内容内容内容内容内容内容内容</p>
            </li>-->
        </ul>
    </div>


    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script src="dist/mescroll.min.js"></script>
    <script type="text/javascript">
        $("html").css("font-size",(window.innerWidth)/3.75 + 'px');
    </script>
    <script>
        let pages = 0; //页数 

        $(function(){
			//创建MeScroll对象
			var mescroll = new MeScroll("mescroll", {
				down: {
					auto: true, //是否在初始化完毕之后自动执行下拉回调callback; 默认true
					callback: downCallback //下拉刷新的回调
				},
				up: {
					auto: false, //是否在初始化时以上拉加载的方式自动加载第一页数据; 默认false
					isBounce: true, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
					callback: upCallback, //上拉回调,此处可简写; 相当于 callback: function (page) { upCallback(page); }
					toTop:{ //配置回到顶部按钮
						src : "img/mescroll-totop.png", //默认滚动到1000px显示,可配置offset修改
						offset : 1000
                    },
                    htmlNodata: '<p class="upwarp-nodata">-- 没有更多数据了 --</p>',
				}
			});
			
			/*下拉刷新的回调 */
			function downCallback(){
                pages = 1;
				getListDataFromNet(pages, 1, function(data){
					mescroll.endSuccess();
					setListData(data, false);
				}, function(){
					//联网失败的回调,隐藏下拉刷新的状态
	                mescroll.endErr();
				});
			}
			
			/*上拉加载的回调 */
			function upCallback(page){
                pages += 1;
				getListDataFromNet(pages, page.size, function(curPageData){
                    console.log('执行')
					mescroll.endSuccess(curPageData.length);
					setListData(curPageData, true);
				}, function(){
					//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
	                mescroll.endErr();
				});
			}
			
			/*设置列表数据*/
			function setListData(curPageData, isAppend) {
                console.log(isAppend)
                if (isAppend){
                    $("#newsList").append(curPageData)
                } else{ //下拉刷新
                    $("#newsList").html(curPageData)
                }
			}
            
            
            let dataList = [
                {title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
                {title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
                {title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
                {title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
                {title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
                {title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
                {title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
                {title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
                {title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'}
            ];
			function getListDataFromNet(pageNum,pageSize,successCallback,errorCallback) {
                console.log('请求');
                console.log('页码:'+pageNum)
                setTimeout(function () {
                	try{
                        let html = '';
                        dataList.map((item,index)=>{
                            html += `<li>
                                <p>【新闻${index}】标题标题标题标题</p>
                                <p class="new-content">内容内容内容内容内容内容内容内容内容</p>
                            </li>`;
                        })
                        if(pageNum == 3 || pageNum == 6){html = ''}; // 模仿请求没数据了
	                	successCallback&&successCallback(html);
                	}catch(e){
                		//联网失败的回调
                		errorCallback&&errorCallback();
                	}
                },1000)
			}
			
		});
    </script>
    
</body>
</html>

<!--

    #1.引入jq 因为该ui基于jq
    #2.引入mescroll.min.css 引入mescroll.min.js
    #3.在html写入控制器

-->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值