Home > Article > Backend Development > jquery实现瀑布流并与php实现数据交互
以前js 实现过一个瀑布流,jquery 也来实现一个
主要思路:
1 先显示出来大概20张图片,使界面出现滚动条
2 设置显示出来图片父id 设置为relative 定位,图片定位方式为float 定位
3 使刚显示出来的图片作为折叠出现,呈现为瀑布流
4 当滚动 滚动条时,判断是否进行加载图片
5 使新加载的图片重新进行瀑布流排序
重点:
1 判断什么时间进行加载新图片
2 实现瀑布流式排序
怎样确定加载哪部分图片那,在后台limit 一下位置就ok啦
好,上代码:
1 先显示出来部分图片
//实现瀑布流显示图片 public function photo(){ $id = M("Cate")->field("id")->where("name = '相册展示'")->select(); $this->image_list = M("Blog")->field("content ,summary")->limit(10)->order("time desc")->where("cid = {$id[0]['id']}")->select(); $this->length=10;//刚开始显示10张图片 $this->cur_position = '相册展示'; $this->id = $id[0]['id']; $this->display(); }
<!--content end--> <style type="text/css"> #wf-main{position: relative;} #wf-main li{padding: 15px 0 0 15px; float:left;} </style>
4 重点 js 代码:
$(function(){ waterfall(); //进行加载图片 $(window).scroll(function(){ if(checkscrollside()){ var offset = $("input[name=offset]").val(); var length = $("input[name=length]").val(); var justice = $("input[name=justic]").val(); if(justice === offset){ return false; }else{ $("input[name=justic]").val(offset); } $.post( //每次添加新元素进行瀑布流排序 "/Index/Show/more_photo", { offset :offset, length:length },function(data){ if(data){ $(data).each(function(index,value){ $li = $("
//根据ajax 每次显示出来部分图片 public function more_photo(){ $offset = $_POST['offset']; $length = $_POST['length']; $id = M("Cate")->field("id")->where("name = '相册展示'")->select(); $image_list = M("Blog")->field("content ,summary,title")->limit($offset,$length)->order("time desc")->where("cid = {$id[0]['id']}")->select(); exit(json_encode($image_list)); }
顺便秀秀战果了:
实际地址就是在个人博客上面啦:
http://buyingfeiblog.sinaapp.com/
代码进行时,敬请期待!