您好,欢迎来到菜鸟吧源码网(www.cniao8.com)本站只做精品网站源码!
  • 首 页
  • 菜鸟云
  • 公告:本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > dede教程 >
    织梦dedecms首页列表页ajax点击下拉加载更多文章瀑布流效果
    时间:2020-02-28 12:08 作者:菜鸟吧 浏览:收藏 挑错 打印

    dedecms实现点击下拉加载更多主要用到ajax技术。具体步骤如下:

    一、首先找到并打开/plus/list.php文件,在里面找到如下代码:

    require_once(dirname(__FILE__)."/../include/common.inc.php");

    在这段代码下面添加以下代码:

    01//列表页瀑布流无限加载代码
    02if(isset($_GET['ajax'])){
    03$typeid= isset($_GET['typeid']) ? intval($_GET['typeid']): 0;//传递过来的分类ID
    04$page= isset($_GET['page']) ? intval($_GET['page']): 0;//页码
    05$pagesize= isset($_GET['pagesize']) ? intval($_GET['pagesize']): 15;//每页多少条,也就是一次加载多少条数据
    06$start= $page>0 ? ($page-1)*$pagesize: 0;//数据获取的起始位置。即limit条件的第一个参数。
    07$typesql= $typeid? " WHERE typeid=$typeid": '';//这个是用于首页实现瀑布流加载,因为首页加载数据是无需分类的,所以要加以判断,如果无需
    08$total_sql= "SELECT COUNT(id) as num FROM `archives` $typesql ";
    09$temp= $dsql->GetOne($total_sql);
    10$total= 0;//数据总数
    11$load_num=0;
    12if(is_array($temp)){
    13$load_num= round(($temp['num']-15)/$pagesize);//要加载的次数,因为默认已经加载了
    14$total= $temp['num'];
    15}
    16$sql= "SELECT a.*,t.typedir,t.typename,t.isdefault,t.defaultname,t.namerule,
    17t.namerule2,t.ispart, t.moresite,t.siteurl,t.sitepath
    18FROM `archives` asa JOIN `arctype` AS t ON a.typeid=t.id $typesqlORDER BY id DESC LIMIT $start,$pagesize";
    19$dsql->SetQuery($sql);
    20$dsql->Execute('list');
    21$statu= 0;//是否有数据,默认没有数据
    22$data= array();
    23$index= 0;
    24while($row= $dsql->GetArray("list")){
    25$row['info'] = $row['info'] = $row['infos'] = cn_substr($row['description'],160);
    26$row['id'] =  $row['id'];
    27$row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],
    28$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
    29$row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],
    30$row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
    31$row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'],
    32$row['isdefault'],$row['defaultname'],$row['ispart'],
    33$row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);
    34if($row['litpic'] == '-'|| $row['litpic'] == ''){
    35$row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';
    36}
    37if(!preg_match("#^http:\/\/#i", $row['litpic']) &&$GLOBALS['cfg_multi_site'] == 'Y'){
    38$row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];
    39}
    40$row['picname'] = $row['litpic'];//缩略图
    41//$row['stime'] = GetDateMK($row['pubdate']);
    42$row['stime'] = date('Y-m-d H:i', $row['pubdate']);
    43$row['click'] = $row['click'];
    44$row['typelink'] = "".$row['typename']."";//分类链
    45$row['fulltitle'] = $row['title'];//完整的标题
    46$row['shorttitle'] = $row['shorttitle'];//副标题
    47$row['title'] = cn_substr($row['title'], 80);//截取后的标题
    48$data[$index] = $row;
    49$index++;
    50}
    51if(!empty($data)){
    52$statu= 1;//有数据
    53}
    54$result=array('statu'=>$statu,'list'=>$data,'total'=>$total,'load_num'=>$load_num);
    55echojson_encode($result);//返回数据
    56exit();
    57}
    二、然后在需要使用瀑布流无线加载的织梦dedecms模板里引用下面这个js代码(这个js大家应该不是很陌生,只要有用到JQ库函数的话一定要引用这个js):


    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>

    三、并在模板底部添加以下代码:

    01<script type="text/javascript">
    02varloadConfig = {
    03url_api:'/plus/list.php',
    04typeid:{dede:field name="typeid"/},
    05page:2,
    06pagesize:15,  //这个就是滑动一次添加几条信息的参数设置
    07loading : 0,
    08}
    09functionloadMoreApply(){
    10if(loadConfig.loading == 0){
    11vartypeid = loadConfig.typeid;
    12varpage = loadConfig.page;
    13varpagesize = loadConfig.pagesize;
    14varurl = loadConfig.url_api,data={ajax:'pullload',typeid:typeid,page:page,pagesize:pagesize};
    15varsTop = document.body.scrollTop || document.documentElement.scrollTop, dHeight = $(document).height(), cHeight = document.documentElement.clientHeight;
    16console.log(dHeight);
    17
    18if(sTop + cHeight >= dHeight - cHeight) {
    19loadConfig.loading = 1;
    20functionajax(url, data) {
    21
    22$.ajax({url: url,data: data,async: false,type: 'GET',dataType: 'json',success: function(data) {
    23addContent(data);
    24}});
    25}
    26ajax(url,data);
    27}
    28}
    29}
    30functionaddContent (rs){
    31if(rs.statu== 1){
    32vardata = rs.list;
    33vartotal = rs.total;
    34vararr=[];
    35varlength = data.length;
    36for(vari=0;i<length;i++){
    37arr.push('<a href="'+data[i].arcurl+'" title="'+data[i].title+'">');
    38arr.push('<dl class="yz_card">');
    39arr.push('<dt class="yz_card_dt">');
    40arr.push('<img src="'+data[i].picname+'" style="height:auto !important;line-height:20px !important;font-size:14px !important;">+data[i].title+'">');
    41arr.push('</dt>');
    42arr.push('<dd class="yz_card_dd">');
    43arr.push('<p class="yz_card_p">'+data[i].title+'</p>');
    44arr.push('<div class="yz_card_icon">');
    45arr.push('<span class="yz_comment">');
    46arr.push(data[i].click);                          
    47arr.push('<em class="yz_icon_comment"><img src="/templets/default/images/pingluan.png" height="14"></em>');
    48arr.push('</span>');
    49arr.push('</div>');
    50arr.push('<div class="yz_datetime">'+data[i].stime+'</div>');
    51arr.push('</dd>');
    52arr.push('</dl>');
    53arr.push('</a>');
    54}
    55$('.arclist').append(arr.join(''));
    56loadConfig.load_num = rs.load_num;
    57if(total<loadConfig.page*loadConfig.pagesize || loadConfig.page > loadConfig.load_num){
    58window.removeEventListener('srcoll',loadMoreApply,false);
    59}
    60loadConfig.page++;
    61loadConfig.loading = 0;
    62}
    63}
    64functionpullLoad(){
    65window.addEventListener('scroll', loadMoreApply, false);
    66}
    67pullLoad();
    68</script>
    上面的代码中的$('.arclist').append(arr.join(''));里的arclist对应模板内列表的外框class属性。


    arr.push部分对应的是列表中单篇文章的代码。

    到此织梦dedecms瀑布流无限加载就实现了。

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:admin@cniao8.com,我们尽快处理。

    织梦中{dede:channel}无法调用隐藏栏目解决方法织梦中{dede:channel}无法调用隐藏栏目
    DEDECMS批量导入excel数据到后台文章系统的开发教程DEDECMS批量导入excel数据到后台文章系
    织梦58织梦模板加固版教程详解织梦58织梦模板加固版教程详解