美文网首页
js上拉加载更多

js上拉加载更多

作者: 下班再说 | 来源:发表于2020-04-19 13:26 被阅读0次

    <script>

            //全局变量

            var count = 7, timer, noData = true;

            //判断文档位置

            function onReachBottom(callback) {

                //文档的高度

                var docHeight = $(document).height();

                //窗口的高度

                var winHeight = $(window).height();

                //滚动条滚动的距离

                var scrollTop = $(window).scrollTop();

                //判断是否到达文档底部

                if (docHeight - winHeight - scrollTop < 200) {

                    console.log("触底");

                    callback()

                }

            }

            //添加警示框

            function appendAlert() {

                //判断警示框是否含有长度

                if (!$("#alert").length) {

                    //判断警告框的内容

                    var msg = noData ? '<i class="glyphicon glyphicon-refresh rotate"></i>' : '我是有底线的!!!';

                    //判断警告框的的类名

                    var alertClass = noData ? "info" : "danger";

                    //先把警告框存起来

                    var alert =

                        '<div id="alert" class="alert fade in alert-' + alertClass + ' text-center">\

                            '+ msg + '\

                            <button class="close" data-dismiss="alert">&times;</button>\

                        </div>'

                    //把警告插入到文档中

                    $('body').append(alert);

                }

            }

            //加数字容器

            function appendSection() {

                //把需要插入的数字存起来

                var sec = '<div class="sec"><span>' + --count + '</span></div>';

                //把数字插到文档中

                $("body").append(sec);

                //把之前插入的警示框移除

                $("#alert").remove();

            }

            //给span标签加类名

            function addClassSpan() {

                //找出加载出来的span标签

                var $lastSpan = $(".sec:last").find("span");

                //给span标签加类名

                if (!$lastSpan.hasClass("zoomIn")) $lastSpan.addClass("zoomIn");

            }

            /*  //防抖

            function debounce(callback) {

                clearTimeout(timer);

                timer = setTimeout(function () {

                    callback()

                }, 1000)

            } */

            //节流

            function throttle(callback) {

                if (!timer) {

                    timer = setTimeout(function () {

                        callback();

                        timer = false;

                    }, 500)

                }

            }

            //加载更多方法集合

            function loadMore() {

                //当加载内容的数为0 时停止加载

                if (count <= 0) {

                    if (noData) {

                        //关闭开关

                        noData = false;

                        appendAlert();

                        // addClassSpan();

                        // appendSection();

                    }

                    //达到条件是关闭函数

                    return false;

                }

                appendAlert();

                throttle(appendSection);

                addClassSpan();

            }

            //滚动条移动时执行函数

            $(window).on("scroll", function () {

                onReachBottom(loadMore)

            })

        </script>

    相关文章

      网友评论

          本文标题:js上拉加载更多

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