html页面
<body> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" src="jquery.masonry.min.js"></script> <div id="container" class=" container"> <volist name="list" id="vo"> <div class="item" style="height:230px;"> {$vo.title} <input type="hidden" name="id" value="{$vo.id}"/> </div> </volist> </div> <div id="loading" class="loading-wrap"> <span class="loading">加载中,请稍后...</span> </div> <div class="footer"><center>我是页脚</center></div> <script type="text/javascript"> $(function(){ //执行瀑布流 var $container = $('#container'); $container.masonry({ itemSelector : '.item', isAnimated: true }); var loading = $("#loading").data("on", false); $(window).scroll(function(){ if(loading.data("on")) return; if($(document).scrollTop() > $(document).height()-$(window).height()-$('.footer').height()){ //加载更多数据 loading.data("on", true).fadeIn(); $.get( "{:U('Index/getDbMore')}", {"last_id" : $("#container>div:last>input").val()}, function(data){ var html = ""; if($.isArray(data)){ for(i in data){ html += "<div class="item" style="height:230px;">"+data[i]['title']+""; html += "<input type="hidden" name="id" value=""+data[i]['id']+""/></div>"; } var $newElems = $(html).css({ opacity: 0 }).appendTo($container); $newElems.imagesLoaded(function(){ $newElems.animate({ opacity: 1 }); $container.masonry( 'appended', $newElems, true ); }); loading.data("on", false); } loading.fadeOut(); }, "json" ); } }); }); </script> </body>
thinkphp控制器
//初始化数据 public function index(){ $list = M('article')->order('id DESC')->limit(10)->select(); $this->assign('list', $list); $this->display(); } //获取下一栏数据 public function getDbMore(){ $last_id = $this->$_GET['last_id']; $map['id'] = array('lt', $last_id); $list = M('article')->where($map)->order('id DESC')->limit(6)->select(); $this->ajaxReturn($list); }
点击下载jquery.masonry.min.js文件