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

前端之家收集整理的这篇文章主要介绍了jQuery向下滚动即时加载内容实现的瀑布流效果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

后台用 json 传输数据, 示例程序中只写了示例数组。数据也只设置了两个属性, 需根据实际应用改写。

页面用了 ul li 做为容器, 每个 li 表示一列

  • PHP和Jquery和ajax实现下拉淡出瀑布流效果(无需插件
  • JS代码

    底部以上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; iiTempHeight) { iHeight = iTempHeight; $row = $(this); } }); $item = $('

    '+oProduct.title+'
    ').hide(); $row.append($item); $item.fadeIn(); } } } }); }

    下面再给大家分享一段代码PHP Jquery和ajax相结合实现下拉淡出瀑布流效果

    我的风格,废话不多说,感兴趣的朋友直接看下文代码

    前台

    PHP
    $category=$this->getMyVal('category',$_GET);
    $xiaohuaList=Xiaohua::model()->getXiaohao($category); //打开页面默认显示的数据
    ?>

    id;?>
    content;?>

    后台

    getXiaohua();//获取笑话信息 echo CJSON::encode($xiaohuaList); }

    js:

    图片的选择器 auto_imgHeight:true,//是否需要自动计算图片的高度 fadein:true,//是否渐显载入 fadein_speed:600,//渐显速率,单位毫秒 insert_type:1,//单元格插入方式,1为插入最短那列,2为按序轮流插入 getResource:function(index){ } //获取动态资源函数,必须返回一个砖块元素集合,传入参数为加载的次数 },// waterfall=$.waterfall={},//对外信息对象 $waterfall=null;//容器 waterfall.load_index=0,//加载次数 $.fn.extend({ waterfall:function(opt){ opt=opt||{}; setting=$.extend(setting,opt); $waterfall=waterfall.$waterfall=$(this); waterfall.$columns=creatColumn(); render($(this).find(setting.cell_selector).detach(),false); //重排已存在元素时强制不渐显 waterfall._scrollTimer2=null; $(window).bind('scroll',function(){ clearTimeout(waterfall._scrollTimer2); waterfall._scrollTimer2=setTimeout(onScroll,300); }); waterfall._scrollTimer3=null; $(window).bind('resize',function(){ clearTimeout(waterfall._scrollTimer3); waterfall._scrollTimer3=setTimeout(onResize,300); }); } }); function creatColumn(){//创建列 waterfall.column_num=calculateColumns();//列数 //循环创建列 var html=''; for(var i=0;i'; } $waterfall.prepend(html);//插入列 return $('.'+setting.column_className,$waterfall);//列集合 } function calculateColumns(){//计算需要的列数 var num=Math.floor(($waterfall.innerWidth())/(setting.column_width+setting.column_space)); if(num<1){ num=1; } //保证至少有一列 return num; } function render(elements,fadein){//渲染元素 if(!$(elements).length) return;//没有元素 var $columns = waterfall.$columns; $(elements).each(function(i){ if(!setting.auto_imgHeight||setting.insert_type==2){//如果给出了图片高度,或者是按顺序插入,则不必等图片加载完就能计算列的高度了 if(setting.insert_type==1){ insert($(elements).eq(i),setting.fadein&&fadein);//插入元素 }else if(setting.insert_type==2){ insert2($(elements).eq(i),i,setting.fadein&&fadein);//插入元素 } return true;//continue } if($(this)[0].nodeName.toLowerCase()=='img'||$(this).find(setting.img_selector).length>0){//本身是图片或含有图片 var image=new Image; var src=$(this)[0].nodeName.toLowerCase()=='img'?$(this).attr('src'):$(this).find(setting.img_selector).attr('src'); image.onload=function(){//图片加载后才能自动计算出尺寸 image.onreadystatechange=null; if(setting.insert_type==1){ insert($(elements).eq(i),setting.fadein&&fadein);//插入元素 } image=null; } image.onreadystatechange=function(){//处理IE等浏览器的缓存问题:图片缓存后不会再触发onload事件 if(image.readyState == "complete"){ image.onload=null; if(setting.insert_type==1){ insert($(elements).eq(i),setting.fadein&&fadein);//插入元素 } image=null; } } image.src=src; }else{//不用考虑图片加载 if(setting.insert_type==1){ insert($(elements).eq(i),setting.fadein&&fadein);//插入元素 } } }); } function public_render(elems){//ajax得到元素的渲染接口 render(elems,true); } function insert($element,fadein){//把元素插入最短列 if(fadein){//渐显 $element.css('opacity',0).appendTo(waterfall.$columns.eq(calculateLowest())).fadeTo(setting.fadein_speed,1); }else{//不渐显 $element.appendTo(waterfall.$columns.eq(calculateLowest())); } } function insert2($element,fadein){//按序轮流插入元素 if(fadein){//渐显 $element.css('opacity',0).appendTo(waterfall.$columns.eq(i%waterfall.column_num)).fadeTo(setting.fadein_speed,1); }else{//不渐显 $element.appendTo(waterfall.$columns.eq(i%waterfall.column_num)); } } function calculateLowest(){//计算最短的那列的索引 var min=waterfall.$columns.eq(0).outerHeight(),min_key=0; waterfall.$columns.each(function(i){ if($(this).outerHeight()=bottom-windowHeight){ render(getElements(),true); } },100); } function onResize(){//窗口缩放时重新排列 if(calculateColumns()==waterfall.column_num) return; //列数未改变,不需要重排 var $cells=waterfall.$waterfall.find(setting.cell_selector); waterfall.$columns.remove(); waterfall.$columns=creatColumn(); render($cells,false); //重排已有元素时强制不渐显 } })(jQuery);

    以上代码分为两部分给大家介绍了PHP和Jquery和ajax实现下拉淡出瀑布流效果代码比较简单,附有注释,如有bug欢迎提出,编程之家小编会在第一时间和大家联系的。谢谢!

    猜你在找的PHP相关文章