利用ajax实现织梦dedecms瀑布流无限加载功能

dede瀑布流无限加载 dede列表页实现下拉不断加载产品,让浏览更方便体验更佳 立即下载

该功能主要用到AJAX技术!
一、首先找到并打开/plus/list.php文件,在里面找到如下代码:

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

在其代码下面添加如下代码:

//列表页瀑布流无限加载代码
if(isset($_GET['ajax'])){
    $typeid = isset($_GET['typeid']) ? intval($_GET['typeid']): 0;//传递过来的分类ID
    $page = isset($_GET['page']) ? intval($_GET['page']): 0;//页码
    $pagesize = isset($_GET['pagesize']) ? intval($_GET['pagesize']): 15;//每页多少条,也就是一次加载多少条数据
    $start = $page>0 ? ($page-1)*$pagesize : 0;//数据获取的起始位置。即limit条件的第一个参数。
    $typesql = $typeid ? " WHERE typeid=$typeid" : '';//这个是用于首页实现瀑布流加载,因为首页加载数据是无需分类的,所以要加以判断,如果无需
    $total_sql = "SELECT COUNT(id) as num FROM `#@__archives` $typesql ";
    $temp = $dsql->GetOne($total_sql);
    $total = 0;//数据总数
    $load_num =0;
    if(is_array($temp)){
        $load_num= round(($temp['num']-15)/$pagesize);//要加载的次数,因为默认已经加载了
        $total = $temp['num'];
    }
    $sql = "SELECT a.*,t.typedir,t.typename,t.isdefault,t.defaultname,t.namerule,
    t.namerule2,t.ispart, t.moresite,t.siteurl,t.sitepath
    FROM `#@__archives` as a JOIN `#@__arctype` AS t ON a.typeid=t.id $typesql ORDER BY id DESC LIMIT $start,$pagesize";
    $dsql->SetQuery($sql);
    $dsql->Execute('list');
    $statu = 0;//是否有数据,默认没有数据
    $data = array();
    $index = 0;
    while($row = $dsql->GetArray("list")){
        $row['info'] = $row['info'] = $row['infos'] = cn_substr($row['description'],160);
        $row['id'] =  $row['id'];
        $row['filename'] = $row['arcurl'] = GetFileUrl($row['id'],
        $row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
        $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],
        $row['filename'],$row['moresite'],$row['siteurl'],$row['sitepath']);
        $row['typeurl'] = GetTypeUrl($row['typeid'],$row['typedir'],
        $row['isdefault'],$row['defaultname'],$row['ispart'],
        $row['namerule2'],$row['moresite'],$row['siteurl'],$row['sitepath']);
        if($row['litpic'] == '-' || $row['litpic'] == ''){
            $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';
        }
        if(!preg_match("#^http:\/\/#i", $row['litpic']) &&$GLOBALS['cfg_multi_site'] == 'Y'){
            $row['litpic'] = $GLOBALS['cfg_mainsite'].$row['litpic'];
        }
        $row['picname'] = $row['litpic'];//缩略图
        //$row['stime'] = GetDateMK($row['pubdate']);
        $row['stime'] = date('Y-m-d H:i', $row['pubdate']);
        $row['click'] = $row['click'];
        $row['typelink'] = "".$row['typename']."";//分类链
        $row['fulltitle'] = $row['title'];//完整的标题
        $row['shorttitle'] = $row['shorttitle'];//副标题
        $row['title'] = cn_substr($row['title'], 80);//截取后的标题
        $data[$index] = $row;
        $index++;
    }
    if(!empty($data)){
        $statu = 1;//有数据
    }
    $result =array('statu'=>$statu,'list'=>$data,'total'=>$total,'load_num'=>$load_num);
    echo json_encode($result);//返回数据
    exit();
}

二、然后在需要使用瀑布流无线加载的模板里引用下面这个js代码(这个js大家应该不是很陌生,只要有用到JQ库函数的话一定要引用这个js):

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

三、并在底部添加如下代码:

<script type="text/javascript">
var loadConfig = {
                url_api:'/plus/list.php',
                typeid:{dede:field name="typeid"/},
                page:2,
                pagesize:2,  //这个就是滑动一次添加几条信息的参数设置
                loading : 0,
                }
function  loadMoreApply(){
    if(loadConfig.loading == 0){
         var typeid = loadConfig.typeid;
         var page = loadConfig.page;
         var pagesize = loadConfig.pagesize;
         var url = loadConfig.url_api,data={ajax:'pullload',typeid:typeid,page:page,pagesize:pagesize};
         var sTop = document.body.scrollTop || document.documentElement.scrollTop, dHeight = $(document).height(), cHeight = document.documentElement.clientHeight;
         console.log(dHeight);

         if (sTop + cHeight >= dHeight - cHeight) {
             loadConfig.loading = 1;
            function ajax(url, data) {

                $.ajax({url: url,data: data,async: false,type: 'GET',dataType: 'json',success: function(data) {
                    addContent(data);  
                }});
            }
            ajax(url,data);
        }
    }
}
 function addContent (rs){
    if(rs.statu== 1){
        var data = rs.list;
        var total = rs.total;
        var arr=[];
        var length = data.length;
        for(var i=0;i<length;i++){
            arr.push('<li class="badcat-cell mui-media">');
            arr.push('<a href="'+data[i].arcurl+'">');
            arr.push('<img class="mui-media-object mui-pull-right" src="'+data[i].picname+'">');
            arr.push('<div class="mui-media-body">');
            arr.push(''+data[i].title+'');
            arr.push('<p class="mui-ellipsis">'+data[i].info+'.</p>');
            arr.push('</div>');
            arr.push('</a>');
            arr.push('</li>');
        }
        $('.badcat').append(arr.join(''));
        loadConfig.load_num = rs.load_num;
        if(total<loadConfig.page*loadConfig.pagesize || loadConfig.page > loadConfig.load_num){
            window.removeEventListener('srcoll',loadMoreApply,false);
        }
        loadConfig.page++;
        loadConfig.loading = 0;
    }
}
function pullLoad(){
    window.addEventListener('scroll', loadMoreApply, false);
}
pullLoad()
checkMobile();
</script>
上面的代码中的$('.badcat').append(arr.join(''));里的badcat对应模板内列表的外框class属性。
arr.push部分对应的是列表中单篇文章的代码。
这样就可以想要使用瀑布流无线加载了。
如果在其它页调用的话只需把代码中的typeid:{dede:field name="typeid"/} 修改为typeid:5(5 就是我们要调用文章的栏目ID)即可。
注意:很多人在调试这个功能的时候可能把标签写成了
{dede:list pagesize='10'}{/dede:list} 

要用

{dede:arclist row="15"}{/dede:arclist}

才可以,不然文章是加载不出来的!

基于有些网友的需求添加了“加载完成”的提示! 找到如下代码

if(total<loadConfig.page*loadConfig.pagesize || loadConfig.page > loadConfig.load_num){
            window.removeEventListener('srcoll',loadMoreApply,false);

在判断语句的最后加上如下代码!

$('<div style="width:100%; float:left; text-align:center; padding: 10px 0px; color:#fff; background:#00aa98; font-size: 16px;">加载完成</div>').insertAfter('.badcat');

加上这段代码的意思是:当文章全部加载完的时候在所有文章最底部显示“加载完成”的提示! 代码的意思是:在类为“.badcat”的标签下面插入 “加载完成”的DIV标签!

文章由GIF动态图(http://www.23o.cn)编辑整理

jQuery无限加载瀑布流插件masonry jQuery无限加载瀑布流插件masonrys鼠标滚动时动态加载数据,来源:http://www.jq-school.com 立即下载

相关推荐

dede瀑布流插件

dede点击瀑布流插件,适用于织梦列表无限下拉、无限加载

dede织梦专用瀑布流无限加载特效代码

这个插件别人一般是卖几十元的,我在这里拿出来跟大家免费分享的。因为我觉得技术这东西如果不是特别大特别麻烦的就应该免费大家共享下。;这里主要说明下安装方法,具体文件在我的百度网盘里面有下载,在最后有链接地址。、 模板安装方法:   1.将原有templets/default文件夹备份. 2.将压缩包内的文件全部覆盖到网站根目录. 3.将压缩包内 templets 文件覆盖到 templet

企业级技术与网站app运营 3408

无限加载瀑布流

无限加载瀑布流

DEDECMS 列表无限加载

var catid = $(".list_next").data("catid"); var cur_list = $(".list_next").data("list") == "列表样式2" ? "列表样式2" : ".list"; var next_no = 2; var path_arr = window.location.pathname.split("/");

企业级技术与网站app运营 3125

CSS3实现瀑布流布局与无限加载图片相册的实例代码

目录 一、pic1.html页面代码如下: 二、模拟数据库数据的实体类Photoes.cs代码如下: 三、服务器返回数据给客户端的一般处理程序Handler1.ashx代码如下: 四、示例下载: 五、了解更多瀑布流布局的的知识 首先给大家看一下瀑布流布局与无限加载图片相册效果图: 一、pic1.html页面代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>瀑布流布局与无限加载图片相册</title> <style t

把MinerU集成到Dify

本文介绍了如何将本地部署的MinerU与Dify平台进行集成。首先需要确保Dify和MinerU在Docker环境中正常运行,并通过配置虚拟网络实现互联。然后详细说明了在Dify平台安装MinerU插件的步骤,包括从插件市场搜索安装、配置连接参数等关键操作。特别强调了要等待MinerU容器完全启动(healthy状态)后再进行Dify配置,否则会出现连接错误。通过简单的URL指向和API密钥设置,用户即可实现Dify平台与本地MinerU算力网络的对接,为后续的AI应用开发提供基础支持。

lyxerlau的博客 313

织梦cms ajax.php,详解织梦模板DEDE首页列表页AJAX无限加载瀑布流修正版

最近在学javascript,才慢慢开始读懂JS代码。对HTML前台AJAX加载技术研究了一番,像博客站或者图片站运用AJAX异步无限加载,做成瀑布流,提高用户体验,这是AJAX异步加载的优点。AJAX异步加载的弊端:属于WEB前端技术,蜘蛛不会抓JS调用的内容,也就是并不利于SEO优化。所以要运用这个功能的话最好有一部分直接调用,另一部分采用AJAX异步加载。接下来用织梦来做AJAX异步加载WE...

weixin_31134719的博客 347

uniapp APP分享;判断用户是否安装APP,已安装直接打开,未安装跳转下载页;uniapp 在外部打开APP(schemes)

A将某商品分享给B,B点击后判断是否安装APP,若安装直接打开,没有安装则跳转下载页;

@微你 5681

dede织梦瀑布流代码,可修改为点击加载更多

嫌麻烦可以直接下载下面的两个文件(注意:程序为UTF-8版本):   滚动自动加载瀑布流代码[点此下载]   点击加载瀑布流代码[点此下载]   首先页面上必须加载这三个js: 瀑布流调用方法: {dede:list pagesize='3'} [field:title/] {/dede:list}   要注意,本瀑布流为无限加载形式,所以分页处一定要注意,调用方法为:...

337

MAX30102传感器实战:从寄存器配置到Arduino心率血氧监测

本文详细介绍了MAX30102传感器在Arduino平台上的实战应用,从寄存器配置到心率血氧监测的全过程。通过清晰的代码示例和实用技巧,帮助开发者快速实现脉搏血氧仪功能,包括I2C通信、FIFO数据处理及算法实现,适用于健康监测和可穿戴设备开发。

weixin_29182481的博客 511

200smart 模拟量转换库的建立

模拟量当前值 =(工程值 - 工程量下限)*(模拟量上限 - 模拟量下限)/ (工程量上限 - 工程量下限)+ 模拟量下限2. 建立变量表3. 程序。

mmxxoo_xxmmp的博客 4215

dede实现点击加载更多数据(ajax发送请求)

参考网址:http://www.dede58.com/a/zhimengjiaocheng/development/4580.html 一、首先找到并打开/plus/list.php文件,在里面找到如下代码: require_once(dirname(FILE)."/…/include/common.inc.php"); 在这段代码下面添加以下代码: //列表页瀑布流无限加载代码 if(isset($_GET['ajax'])){ // echo 'ajax'; // exit();

xioxi 443

基于MATLAB的奇异谱分析(SSA)算法详解

本文详细介绍了基于MATLAB的奇异谱分析(SSA)算法。文章首先阐述了SSA的基本概念、历史发展及其与传统信号分析方法的对比优势,指出SSA作为一种非参数、非线性时间序列分析方法,特别适合处理非平稳信号。随后详细解析了SSA算法的核心原理与数学模型,包括轨迹矩阵构建、奇异值分解、分组与重构四个关键步骤。文章还提供了完整的MATLAB实现框架和代码解析,涵盖参数检查、轨迹矩阵构建、SVD分解、分组策略和重构过程。最后,通过信号分解、去噪和预测三个应用案例展示了SSA的实际效果。

qq_42212808的博客 168

php瀑布流加载,利用ajax实现织梦dedecms瀑布流无限加载功能

该功能主要用到AJAX技术!一、首先找到并打开/plus/list.php文件,在里面找到如下代码:require_once(dirname(__FILE__)."/../include/common.inc.php");1在其代码下面添加如下代码://列表页瀑布流无限加载代码if(isset($_GET['ajax'])){ $typeid = isset($_GET['typeid']) ? ...

weixin_39905725的博客 232

《FreeRTOS 入门与实战》第2章:开发环境搭建(实战)

STM32CubeIDE工程创建与FreeRTOS移植J-Link调试环境搭建SystemView可视化跟踪配置。

2301_79143213的博客 1733

手把手教你学Simulink实例--基于Simulink的电动汽车无线充电效率优化仿真

​市场规模:2025年全球无线充电市场规模将达$27亿(MarketsandMarkets数据)​技术标准Qi v1.3(最高150W)WiTricity(200W动态功率)ISO 17163(道路车辆无线充电)​节能效果:每kWh充电减少120W损耗(按每天8小时)​成本分析线圈成本:35vs58(传统方案)效率提升带来的续航增加:15km/100km。

xiaoheshang_123的博客 345

php列表循环下拉加载,织梦dedecms首页列表页ajax点击下拉加载更多文章瀑布流效果...

织梦dedecms实现点击下拉加载更多主要用到ajax技术。具体步骤如下:一、首先找到并打开/plus/list.php文件,在里面找到如下代码:require_once(dirname(__FILE__)."/../include/common.inc.php");在这段代码下面添加以下代码://列表页瀑布流无限加载代码if(isset($_GET['ajax'])){$typeid = iss...

weixin_42351363的博客 183

STM32实战开发(122):基于STM32的溶解氧检测系统设计与实现

溶解氧(DO, Dissolved Oxygen)是水质检测中至关重要的指标之一,尤其是在环境监测、工业废水处理以及水产养殖等领域,溶解氧的浓度直接影响到水体的生态环境和生物的健康。电流的大小就可以用来反映水中溶解氧的浓度。本博客将详细介绍如何基于STM32微控制器开发一个智能溶解氧检测系统,内容涵盖系统的硬件设计、软件开发、优化与调试等方面,提供实际的代码实现与实验数据,并展望溶解氧检测系统在物联网环境下的应用。为了提高系统的精度,可以优化ADC的采样率,增加传感器的校准频率,或使用更加精确的传感器。

2201_76125393的博客 1602

织梦ajax加载文章列表,织梦dedecms首页列表页ajax点击下拉加载更多文章瀑布流效果...

织梦dedecms实现点击下拉加载更多主要用到ajax技术。具体步骤如下:一、首先找到并打开/plus/list.PHP文件,在里面找到如下代码:require_once(dirname(__FILE__)."/../include/common.inc.php");在这段代码下面添加以下代码://列表页瀑布流无限加载代码if(isset($_GET['ajax'])){$typeid = iss...

weixin_33028765的博客 276

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

织梦dedecms首页列表页ajax点击下拉加载更多文章瀑布流效果

织梦dedecms实现点击下拉加载更多主要用到ajax技术。具体步骤如下: 一、首先找到并打开/plus/list.php文件,在里面找到如下代码: require_once(dirname(__FILE__)."/../include/common.inc.php"); 在这段代码下面添加以下代码: //列表页瀑布流无限加载代码 if(isset($_GET['

渴望光荣的博客 9384

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

php ajax 加载列表,dedecms使用ajax+php实现列表无限加载

经常会在手机app上看到列表页面下来或者点击的时候可以实现无限加载更多内容的效果,今天说下在织梦网站中如何实现这个功能。这个功能需要用到PHP和ajax技术。首先找到并打开/plus/list.php文件,在里面找到如下代码:require_once(dirname(__FILE__)."/../include/common.inc.php");在其下面添加如下代码://列表页瀑布流无限加载代码i...

weixin_31188807的博客 321

dedecms首页列表页ajax下拉加载更多文章瀑布流效果

一、首先找到并打开/plus/list.php文件,在里面找到如下代码: require_once(dirname(__FILE__)."/../include/common.inc.php"); 在这段代码下面添加以下代码: //列表页瀑布流无限加载代码 if(isset($_GET['ajax'])){ $typeid = isset($_GET['typeid']) ? in...

codipy的博客 374

php ajax jquery瀑布流,dedecms利用ajax实现瀑布流下拉无限加载的教程jquery

require_once(dirname(__FILE__)."/../include/common.inc.php");在其下面添加如下代码:if(isset($_GET['ajax'])){$typeid = isset($_GET['typeid']) ? intval($_GET['typeid']): 0;//传递过来的分类ID$page = isset($_GET['page']) ?...

weixin_34406909的博客 185

织梦dedecms怎么分页

dedecms怎么分页 一、用arclist标签+Ajax实现织梦首页分页 必须在首页<head></head>中引入 <script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script> <head></head>必须加入 <script> functio

PHP错误汇总 345
上一篇: arclist解析标签
下一篇: dede channel 增加limit(属性)功能
langyu1021
博客等级 码龄17年 51粉丝 94原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值