jQuery实现下拉滚动条或鼠标滚轮滚动到页面底部时动态即时加载新内容
创始人
2024-12-11 00:22:31
0次

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

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

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

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

    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; iiTempHeight) 
          { 
           iHeight = iTempHeight; 
           $row = $(this); 
          } 
         }); 
         $item = $('
    '+oProduct.title+'
    ').hide();       $row.append($item);       $item.fadeIn();      }     }    }   });  }

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

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

    前台:


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

    id;?> ">title);?>
    ">content;?>
    );" class="fx cursor_p" data-id="">分享

    后台:

    public function actionListXiaohua() {
    $xiaohuaList=Xiaohua::model()->getXiaohua();//获取笑话信息
    echo CJSON::encode($xiaohuaList);
    }

    js:

    ;(function($){
    var
    //参数
    setting={
    column_width:240,//列宽
    column_className:'waterfall_column',//列的类名
    column_space:2,//列间距
    cell_selector:'.cell',//要排列的砖块的选择器,context为整个外部容器
    img_selector:'img',//要加载的图片的选择器
    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);//插入元素 }else if(setting.insert_type==2){ insert2($(elements).eq(i),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);//插入元素 }else if(setting.insert_type==2){ insert2($(elements).eq(i),i,setting.fadein&&fadein);//插入元素 } image=null; } } image.src=src; }else{//不用考虑图片加载 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);//插入元素 } } }); } 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,i,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);

    相关内容

    热门资讯

    空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
    空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
    格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
    空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
    格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
    品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
    空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
    空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
    中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
    中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...