Fork me on GitHub

jquery实现加载更多效果

情况是当滑动条滑动到最底部的时候,数据显示出一部分的更多

思路:获取到浏览器屏幕的高度client,文档的高度h和滑动距离顶部的距离scroll,当h<=client+scroll的时候就是滑动条到了底部的时候了,

判断好什么时候到了底部的时候,调取ajax获取到相对应的数据;

代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style>
        *{margin:0px;padding:0px;}
        .content{width:500px;height:100%;border:1px solid red;margin:10px auto 0px;}
        </style>
    </head>
    <body>
    <div class="content"></div>
    <script src="js/jquery-1.7.2.js"></script>
    <script>
    $(function(){    
        //一开始显示数据
        //实际中应该是将分页的效果做成加载更多的效果 但是调取数据的原理 是一样的 就是显示数据的效果不一样
        ajax();
        $(document).scroll(function(){
            //滚动条滑动的时候获取滚动条距离顶部的距离
            var scroll=$(document).scrollTop();
            //屏幕的高度
            var client=$(window).height();
            var h=$(document).height();
            var flag=true;
            if (h<=scroll+client) { // 到达底部时,加载新内容
                if(flag==false){
                    return;
                }
                ajax();
            }
            
        });
        function ajax(){
            $.ajax({
                url:'https://sug.so.360.cn/suggest?callback=suggest_so&encodein=utf-8&encodeout=utf-8&format=json&fields=word,obdata&word=新闻',
                type:'GET',
                dataType:'jsonp',
                success:function(data){
                    flag=false;
                    setTimeout(function(){//只是模拟一下需要有个时间过程表示正在调取数据
                        for(var i=0;i<data.result.length;i++){
                            var result=data.result[i];
                            var odiv='<span style="font-size:35px;margin:10px;line-height:50px;">'+result.word+'</span></br>'+
                                    '<span style="font-size:35px;margin:10px;line-height:50px;">'+result.word+'</span></br>';
                            $(".content").append(odiv);
                        }
                    },500);
                    
                },
            });
        };
        
    });
    </script>
    </body>
</html>

代码地址:https://github.com/GainLoss/load-more

因为加载更多的效果其实作用和分页是一样的 分页的地址:http://www.cnblogs.com/GainLoss/p/5810112.html

posted @ 2017-02-15 13:56  zhang_yx  阅读(6719)  评论(0编辑  收藏  举报