美文网首页
帝国列表页无限加载方法

帝国列表页无限加载方法

作者: f3bcf2b0a94b | 来源:发表于2020-04-19 19:19 被阅读0次

第一步骤:

粘贴以下代码放置新建get_news_index.php上并上传到 /e/action:

<?php

require('../class/connect.php');

require('../class/db_sql.php');

require('../data/dbcache/class.php');

if($_POST[action] == 'getmorenews'){

$table=htmlspecialchars($_POST[table]);

if(empty($_POST[orderby])){$orderby='newstime';}else{ $orderby=htmlspecialchars($_POST[orderby]);}

if(empty($_POST[myorder])){$myorder='desc';}else{ $myorder='asc';}

if(empty($_POST[limit])){$limit=3;}else{ $limit=(int)$_POST[limit];}

if(empty($_POST[classid])){$where=null;}else{ $where='where classid in('.$_POST[classid].')';}

if(empty($_POST[length])){$length=50;}else{ $length=(int)$_POST[length];}

if(empty($_POST[small_length])){$small_length=120;}else{ $small_length=(int)$_POST[small_length];}

$link=db_connect();

$empire=new mysqlquery();

$num =(int)$_POST['next'] *$limit;

if($table){

$sql=$empire->query("SELECT * FROM `".$dbtbpre."ecms_".$table."` $where order by $orderby $myorder limit $num,$limit");

while($r=$empire->fetch($sql)){

if($r[titlepic]==''){

$r[titlepic]=$public_r[news.url]."e/data/images/notimg.gif";

}

$oldtitle=stripSlashes($r[title]);

$title=sub($oldtitle,'',$length);

$smalltext=stripSlashes($r[smalltext]);

$smalltext=sub($smalltext,'',$small_length);

$classname=$class_r[$r[classid]][classname];

$newsurl=$public_r[newsurl];

$classurl=$newsurl.$class_r[$r[classid]][classpath];

?>

<article class="excerpt excerpt-one" data-id="<?=$r[classid]?>">

<header><a

class="cat label label-important"

href="<?=$class_r[$r[classid]]['classpath']?>

"><?=$class_r[$r[classid]][bname]?><i

class="label-arrow"></i></a>

<h2><a href="<?=$r[titleurl]?>" title="<?=$r[oldtitle]?>"><?=$r[title]?></a></h2>

<small

class="text-muted"><span class="glyphicon

glyphicon-picture"></span><?=$r[imgcount]?></small></header>

<p class="text-muted time"><?=$r[username]?> 发布于 <?=date('Y-m-d',$r[newstime])?></p>

<p

class="focus"><a href="<?=$r[titleurl]?>"

class="thumbnail"><img src="<?=$r[titlepic]?>"

/></a></p>

<p class="note"><?=$smalltext?>...</p>

<p class="text-muted views">

<span class="post-views">阅读(<?=$r[onclick]?>)</span>

<span

class="post-comments">评论(<?=$r[plnum]?>)</span><a

href="JavaScript:makeRequest('<?=$public_r[news.url]?>e/public/digg?classid=<?=$r[classid]?>&id=<?=$r[id]?>&dotop=1&doajax=1&ajaxarea=diggnum<?=$r[id]?>','EchoReturnedText','GET','');"

class="post-like" ><i class="glyphicon

glyphicon-thumbs-up"></i>赞 (

<span id="diggnum<?=$r[id]?>"><?=$r[diggtop]?></span>)</a>

<span

class="post-tags">标签:<a

href="/337/e/tags/?tagname=<?=stripSlashes($r[keyboard])?>"

target="_blank" rel="tag"

data-original-title><?=stripSlashes($r[keyboard])?></a></span></p>

</article>

//这部分代码是将来列表的样子,可以自己修改自己想要模样

<?php

}

}

}

db_close();

$empire=null;

?>

第二步骤:

引入js代码可在自己的服务器下也可以引入远程的。我引的是远程的  

<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

我采用的是栏目新建静态页面方式做的。

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>[!--pagetitle--]</title>

<meta name="keywords" content="[!--pagekey--]" />

<meta name="baidu-site-verification" content="PzAToy3UMM" />

<meta name="viewport" content="initial-scale=1, width=device-width, maximum-scale=1, user-scalable=no">

<meta name="apple-mobile-web-app-capable" content="yes">

<meta name='apple-touch-fullscreen' content='yes'>

<link href="[!--news.url--]skin/default/css/mui.min.css" rel="stylesheet" type="text/css" />

<link href="[!--news.url--]skin/default/css/app.css" rel="stylesheet" type="text/css" />

<style>

.xs-name {

font-size: 16px !important;

color: #666 !important;

margin: 10px 0;

}

.mui-table-view-cell>a:not(.mui-btn) {

white-space: normal;

text-align: left;

}

.mui-table-view .mui-media-object {

max-width: 60px !important;

height: 49px !important

}

.classimg img {

width: 100%

}

.mui-card {

border-radius: 8px;

margin: 16px 20px;

box-shadow: 0 1px 6px rgba(0, 0, 0, 0.2);

}

.mui-card-content-inner {

padding: 10px 16px 6px 16px

}

</style>

</head>

<body>

<script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

<script>

$(function() {

    var i =0; //设置当前页数

    if (!NeuF) var NeuF = {};

    NeuF.ScrollPage = function (obj, options, callback) {

        var _defaultOptions = {delay: 500, marginBottom: 200}; //默认配置:延迟时间delay和滚动条距离底部距离marginBottom

        options = $.extend(_defaultOptions, options);

        this.isScrolling = false; //是否在滚动

        this.oriPos = 0; //原始位置

        this.curPos = 0; //当前位置

        var me = this; //顶层

        var $obj = (typeof obj == "string") ? $("#" + obj) : $(obj);

        //绑定滚动事件

        $obj.scroll(function (ev) {

            me.curPos = $obj.scrollTop();

            if ($(window).height() + $(window).scrollTop() >= $(document.body).height() - options.marginBottom) {

                if (me.isScrolling == true) return;

                me.isScrolling = true;

                setTimeout(function () {

                    me.isScrolling = false;

                }, options.delay);   //重复触发间隔毫秒

                if (typeof callback == "function") callback.call(null, me.curPos - me.oriPos);

            }

            ;

            me.oriPos = me.curPos;

        });

    };

    $(function () {

        window.scrollTo(0, 0); //每次F5刷新把滚动条置顶

        function show() {

            $.ajax({

                url: 'http://diguo.bailianyu.com/e/action/get_news_index.php',//自己的域名

                type: 'POST',

                data: {

                    "next": i,

    'table': 'chengyu',// 这里是我的数据表

                    'classid':'11',//这里是我id

                    'action': 'getmorenews',

                    'limit': 10,

                    'small_length': 120

                },

                dataType: 'html',

                beforeSend: function () {

                    $("#loadmore").show().html('<img  src="/307/skin/ecms103/images/loading.gif"/>正在努力加载中...');

                    $('#loadmore').attr('disabled', 'disabled');

                },

                success: function (data) {

                    if (data) {

                        $("#showajaxnews").append(data);

                        $("#loadmore").removeAttr('disabled');

                        $("#loadmore").html('滚动加载更多');

                        i++;

                    } else {

                        $("#loadmore").show().html("已全部加载完毕!");

                        console.log(data);

                        $('#loadmore').attr('disabled', 'disabled');

                        return false;

                    }

                }

            });

        };

        show();

        //marginBottom表示滚动条离底部的距离,0表示滚动到最底部才加载,可以根据需要修改

        new NeuF.ScrollPage(window, {delay: 1000, marginBottom: 0}, function (offset) {

            if (offset > 0) {

                setTimeout(show,1000)

            }

        });

    });

});

</script>

<div id="showajaxnews">

列表加载这里面

</div>

<div id="loadmore">滚动加载更多</div>

</body>

</html>

相关文章

网友评论

      本文标题:帝国列表页无限加载方法

      本文链接:https://www.haomeiwen.com/subject/bnmbbhtx.html