zoukankan      html  css  js  c++  java
  • framework7 下拉刷新、无限滚动

    下拉刷新:

    html:

        <div class="page-content ptr-content">
         <%--下拉刷新图标--%> <div class="ptr-preloader"> <div class="preloader"></div> <div class="ptr-arrow"></div> </div> <div class="page-content" style="padding-top:0px"> <div class="card"> <div class="card-footer"><span style="color: #CC0000">案例1</span> </div> </div> <div class="card"> <div class="card-footer"><span style="color: #CC0000">案例2</span> </div> </div> </div> </div>

    js:

    <script>
        return {
            on: {
                pageInit: function (e, done) {
                    $('.ptr-content').on('ptr:refresh', function (e) {
                        //此处编写刷新逻辑代码
                        console.log("开始刷新");
                        setTimeout(function () {
                            console.log("结束");
                            app.ptr.done();
                        }, 1000);
                    });
                }
            }
        }
    </script>

    无限滚动:

    html:

     <%--无限滚动容器--%>
        <div class="page-content infinite-scroll-content">
            <div class="simple-list">
                <div class="card">
                    <div class="card-footer"><span style="color: #CC0000">案例1</span>
                    </div>
                </div>
                <div class="card">
                    <div class="card-footer"><span style="color: #CC0000">案例2</span>
                    </div>
                </div>
                <div class="card">
                    <div class="card-footer"><span style="color: #CC0000">案例3</span>
                    </div>
                </div>
                <div class="card">
                    <div class="card-footer"><span style="color: #CC0000">案例4</span>
                    </div>
                </div>
            </div>
            <%--预加载器--%>
            <div class="preloader infinite-scroll-preloader"></div>
        </div>

    js:

    <script>
        return {
            on: {
                pageInit: function (e, done) {
                    var allowInfinite = true;//加载标志
                    var lastItemIndex = $('.simple-list div[class="card"]').length;//现有加载量                
                    var maxItems = 200;//最大加载量                
                    var itemsPerLoad = 5;//每次加载量
    
                    //滚动事件处理程序
                    $('.infinite-scroll-content').on('infinite', function () {
                        if (!allowInfinite) return;// 如果正在加载,退出
                        console.log("当前数量:" + lastItemIndex);
                        allowInfinite = false;//设置加载标志
    
                        //模拟1秒加载
                        setTimeout(function () {
                            //设置正在加载标志
                            allowInfinite = true;
                            if (lastItemIndex >= maxItems) {
                                app.infiniteScroll.destroy('.infinite-scroll-content');//没有更多可加载项,销毁加载事件,防止不必要加载                           
                                $('.infinite-scroll-preloader').remove(); //删除预紧器
                                return;
                            }
                            //生成新html
                            var html = '';
                            for (var i = lastItemIndex + 1; i <= lastItemIndex + itemsPerLoad; i++) {
                                html += '<div class="card">';
                                html += '<div class="card-footer">';
                                html += '<span style="color: #CC0000">案例' + i + '</span>';
                                html += '</div>';
                                html += '</div>';
                            }
                            $('.simple-list').append(html); //绑定                       
                            lastItemIndex = $('.simple-list div[class="card"]').length; //更新最近索引
                            console.log("加载后数量:" + lastItemIndex);
                        }, 1000);
                    });
                }
            }
        }
    </script>

    解释:

    pageInit: function (e, done) {} 代表文档就绪函数

    $('.ptr-content').on('ptr:refresh', function (e) {} 代表class为“ptr-content”的div下拉刷新事件(ptr:refresh是下拉刷新事件)

    $('.infinite-scroll-content').on('infinite', function () {} 代表class为“infinite-scroll-content”的div滚动事件(infinite是滚动事件)
     

    如有问题,欢迎留言

  • 相关阅读:
    PAT 1008--------数组元素的循环右移,你需要记住的
    PAT1049-----枚举法,找规律题,注意降低时间复杂度
    PAT1048----你需要了解并记住的解题思路
    C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))
    PAT1040----关于数学题目的解法新思路值得借鉴,字符的配对
    PAT1029-----介绍字符串的解题思路和部分知识点
    PAT1027-----等差数列的问题或数学问题
    PAT1026----四舍五入的思路,%2d的一些知识
    / 已阅 /PAT1017-------高精度计算,问题的所有可能情况
    LeetCode 无重复字符的最长子串
  • 原文地址:https://www.cnblogs.com/ZbsCc/p/11533709.html
Copyright © 2011-2022 走看看