您好,欢迎来到菜鸟吧源码网-本站资源仅供学习与参考,禁止用于商业或违法行为!
  • 首 页
  • 下载APP
  • 公告:菜鸟吧APP于2024.9.15正式上线,请首页右上角进入下载,本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > 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瀑布流无限加载就实现了。

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

    织梦中TAG标签字数长度限制解决方法织梦中TAG标签字数长度限制解决方法
    织梦后台突然打不开或打开后空白的解决方法织梦后台突然打不开或打开后空白的解决
    织梦系统解决后台“DEDECMS安全提示”的方法织梦系统解决后台“DEDECMS安全提示”