美文网首页
网页上怎么实现按钮"加载更多"功能

网页上怎么实现按钮"加载更多"功能

作者: 刘小白DOER | 来源:发表于2021-02-01 01:07 被阅读0次

        平日使用今日头条较多,在思考一个问题:怎么下翻时实现信息自动加载呢。在html中,有时也需要实现网页"加载更多"功能,来按需求加载显示更多数据给用户,这样界面更加亲和和快速。今晚值班来实验一番!

    1、滚动条简单实现功能。

    此方法需要手动拉动滚动条,而且内容一次性展示。

    <div style="height:300px;width:200px;overflow:scroll;">

    </div>

     div 内容的高度大于 300px 就会出现垂直滚动条,小于 300px 就没有滚动条。如果宽度大于 200px 会出现水平滚动条,小于就没有。

    也可以只设置垂直滚动条

    <div style="height:300px;overflow-y:auto"></div>

    水平滚动条

    <div style="width:100px;overflow-x:auto"></div>

    2、JS实现按钮点击加载

    <div id="box"></div>

    <button id="btn">加载更多</button>

    JS代码,不断加载data里面的数据。

    var data = ["55", "55", "77", "77", "88", "dd88d", "eee", "777", "888", "999", "10", "11"];

    var nums = 4;

    var curr = 1;

    var render = function(curr) {

        var str = '',

            last = curr * nums - 1;

        last = last >= data.length ? (data.length - 1) : last;

        for (var i = (curr * nums - nums); i <= last; i++) {

            str += '<li>' + data[i] + '</li>';

        }

        return str;

    };

    var boxDom = document.getElementById("box");

    boxDom.innerHTML = render(curr);

    document.getElementById("btn").onclick = function() {

        curr++;

        boxDom.innerHTML += render(curr);

        if (curr > 3) {

            curr = 3;

            alert("没有更多了");

        }

    }

    3、开源代码实现加载更多

    https://github.com/52fhy/loadmore,此开源JS里面有三个方法来实现。

    3.1基于按钮实现加载更多,点击下加载更多,没有更多则隐藏加载更多按钮

        函数getData(pageStart, pageSize);从服务器循环读取json数据,append到div里面。可以在github上下载查看例程。和第二种方式类似,只是循环ajax读取服务器JSON数据,节省带宽。

    3.2基于滚动事件实现加载更多

        当滚动到最底部以上100像素时, 加载新内容,核心代码如下

        if ($(document).height() - $(this).scrollTop() - $(this).height()<100){

                counter ++;

                pageStart = counter * pageSize;

                getData(pageStart, pageSize);

            }

      这里面还有要优化的地方,如何防止滚动过快,服务端没来得及响应造成多次请求。

    3.3优化后loadmore.js综合实例

        实例默认使用滚动事件实现加载更多,当显示数目太小不足以触发向下滚动加载更多的逻辑时,使用加载更多点击事件。

      <script src="js/loadmore.js"></script>

    具体代码就不附上了,可去github上下载按照例程使用。1click,2crroll,3better分别对应上面三种方法。

    相关文章

      网友评论

          本文标题:网页上怎么实现按钮"加载更多"功能

          本文链接:https://www.haomeiwen.com/subject/jywdtltx.html