jQuery实现的瀑布流效果, 向下滚动即时加载内容

下拉滚动条或鼠标滚轮滚动到页面底部时, 动态即时加载新内容。

后台用 json 传输数据, 示例程序中只写了示例数组。数据也只设置了两个属性, 需根据实际应用改写。
 
页面用了 ul li 做为容器, 每个 li 表示一列
 
<ul id="stage">  
    <li></li>  
    <li></li>  
    <li></li>  
    <li></li>  
</ul>  
 
 
JS代码
 
/* 
@版本日期: 版本日期: 2012年4月11日 
@著作权所有: 1024 intelligence ( http://www.1024i.com ) 
 
获得使用本类库的许可, 您必须保留著作权声明信息. 
报告漏洞,意见或建议, 请联系 Lou Barnes(iua1024@gmail.com) 
*/  
$(document).ready(function(){  
    loadMore();  
});   
  
$(window).scroll(function(){  
    // 当滚动到最底部以上100像素时, 加载新内容  
    if ($(document).height() - $(this).scrollTop() - $(this).height()<100) loadMore();  
});  
  
  
function loadMore()  
{  
    $.ajax({  
        url : 'data.php',  
        dataType : 'json',  
        success : function(json)  
        {  
            if(typeof json == 'object')  
            {  
                var oProduct, $row, iHeight, iTempHeight;  
                for(var i=0, l=json.length; i<l; i++)  
                {  
                    oProduct = json[i];  
                      
                    // 找出当前高度最小的列, 新内容添加到该列  
                    iHeight = -1;  
                    $('#stage li').each(function(){  
                        iTempHeight = Number( $(this).height() );  
                        if(iHeight==-1 || iHeight>iTempHeight)  
                        {  
                            iHeight = iTempHeight;  
                            $row = $(this);  
                        }  
                    });  
                      
                      
                    $item = $('<div><img src="'+oProduct.image+'" border="0" ><br />'+oProduct.title+'</div>').hide();  
                      
                    $row.append($item);  
                    $item.fadeIn();  
                }  
            }  
        }  
    });  
}
上一篇:IO(四)----对象的序列化


下一篇:多个文件下载打包生成zip格式下载