ajax-瀑布流效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    * {margin: 0;padding: 0}
    html,body {overflow-x: hidden;}
    #wrap {margin: 20px auto; width: 1100px; height: auto;list-style: none;overflow: hidden;}
    #wrap li {float: left;margin:0 8px; width: 245px;}
    #wrap li div {padding: 10px;width: 225px;margin: 10px 0;border: 1px solid #000;}
    #wrap li img {display: block;border: none;width: 225px;}
    #wrap li p {width: 225px;height: 14px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;font-size: 12px}

    #loading {margin: 20px auto; width: 1100px;height: 30px;border:1px solid #0cf; text-align: center;}
    #loading img {width: 30px;height:30px;}

    .header {width: 100%;height: 50px;background: #0cf;text-align: center;}
    .header a {display: inline-block;margin-top: 5px;padding:10px;border-right:1px solid #fff;text-decoration: none;color: #fff;}

    </style>
    <script type="text/javascript" src="ajaxTP.js"></script>

    <script type="text/javascript">
    window.onload = function () {
        var oLoading = document.getElementById('loading');
        var oUl = document.getElementById('wrap');
        var aLi = oUl.getElementsByTagName('li');
        var viewHeight = document.documentElement.clientHeight;
        var iPage = 0;
        var isLoading = true;
        getImg(iPage);
        window.onscroll = scrollFn;
        function getImg(iPage) {
            ajax({
                method : 'GET',
                url : 'getPics.php',
                data : {"cpage" : iPage},
                async : true,
                timeout : function(){},
                success : function(data){
                    var d = JSON.parse(data);
                    if (!d.length) {
                        oLoading.innerHTML = '<p>已结加载完了</p>';
                        return
                    };

                    for (var i = 0; i < d.length; i++) {
                        var _index = getShort();  //最短的那个li
                        var div = document.createElement('div');
                        div.innerHTML = '<img src="'+d[i].image+'" height="'+225*d[i].height/d[i].width+'" /><p>'+d[i].title+'</p>';
                        aLi[_index].appendChild(div);
                    };
                    isLoading = true;
                    if (isLoading) {
                        oLoading.style.display = "none";
                    };

                },
                error : function(){}
            })
        }
        function getShort() {
            var _index = 0;
            var initHeight = aLi[_index].offsetHeight;
            for (var i = 0; i < aLi.length; i++) {
                if (aLi[i].offsetHeight < initHeight) {
                    initHeight = aLi[i].offsetHeight;
                    _index = i;
                }
            }
            return _index;
        }
        function scrollFn() {
            var scrollY = document.body.scrollTop || document.documentElement.scrollTop;
            var _index = getShort();
            if (aLi[_index].offsetHeight - 50 < scrollY + viewHeight) {
                // console.log('可以加载l')
                if (isLoading) { //先一次加载完在加载下一次,避免滚动时重复加载
                    isLoading = false;
                    oLoading.style.display = "block";
                    iPage++;
                    getImg(iPage)
                };

            };
        }

    }
    </script>
</head>
<body>
    <ul id="wrap">
        <li>
            <div>
                <img src="img/1.jpg" />
                <p>爆款</p>
            </div>
        </li>
        <li>
            <div>
                <img src="img/1.jpg" />
                <p>爆款</p>
            </div>
        </li>
        <li>
            <div>
                <img src="img/1.jpg" />
                <p>爆款</p>
            </div>
        </li>
        <li>
            <div>
                <img src="img/1.jpg" />
                <p>爆款</p>
            </div>
        </li>
    </ul>
    <div id="loading">
        <img src="img/loading.gif">
    </div>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值