前言
在开发「Sweet」主题时,我在想我不能摆脱“点击”分页,做到“滚动”分页。于是我开始在百度寻找一个方法,最终在泽泽大佬那里找到了这个文章,但在开发「Cuckoo」时,全站使用了 PJAX ,文章内没有写怎么兼容 PJAX ,所以就有了这篇文章,首先咱先介绍一下 Infinite Ajax Scroll 是什么。
介绍
Infinite Ajax Scroll是一个JavaScript无限滚动插件,通过读取现有服务器端分页的下一个(和上一个)链接并在访问者滚动到页面末尾时通过AJAX加载这些页面来工作。目前v3开头的版本已经脱离了JQuery,本文使用的版本则是v2的版本。
使用效果可以看下咱的博客!也欢迎大家下载「 Cuckoo 」主题(硬核推广233
安装
第一步
前往 Github 下载该文件压缩包并解压获得(jquery.ias.js)
第二步
将 jquery.ias.js 放入自己主题中的js文件夹(或静态文件夹)中
第三步
在 header.php 或 footer.php 中添加一下代码:
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script src="<?php $this->options->themeUrl('assets/js/jquery-ias.js'); ?>"></script>
注意⚠️:jquery-ias.js 必须引用在 jquery.min.js 后面,否则会出错;如果已引用 jquery.min.js 则无需再次引用。
第四步
前往“index.php”或其他文件查找主题的分页代码,如果你所用的主题使用的分页代码是 <?php $this->pageNav(); ?>
请将其改成 <?php $this->pageLink('下一页', 'next'); ?>
,并且用一个容器包裹它,这里我们用一个class为“changePage”,因此修改后代码如下:
<div class="changePage">
<?php $this->pageLink('下一页', 'next'); ?>
</div>
第五步
在 footer.php 文件中输入以下代码:
<script>
jqueryIAS = function () {
var ias = jQuery.ias({
container: ".left", //包裹全部文章页面的容器
item: ".page", //包裹文章的容器
pagination: ".changePage", //包括分页的容器
next: ".next" //下一页的容器
});
ias.extension(new IASTriggerExtension({
text: "加载更多", //这里为点击加载前的文字
offset: 2, //这里为加载“第二页”后显示其按钮,当然可以自己修改多少页后
}));
ias.extension(new IASSpinnerExtension({
html: '<div class="mdui-spinner mdui-spinner-colorful"></div>' //在加载期间的loading,这里设置的是MDUI框架的圆形进度指示器
}));
ias.extension(new IASNoneLeftExtension({
text: "到底了啦" //到底后显示文字啦!
}));
};
jqueryIAS();
</script>
添加到这里,就已经大功告成啦!!!但是如果主题开了PJAX怎么办捏?那就在PJAX的回调里加上以下代码就好啦!!冲冲冲!
$(document).on('pjax:beforeReplace', function(){
$.ias().destroy();
});
$(document).on('pjax:end', function(){
$.ias().reinitialize();
});
结尾
咱写的可能不太好,有什么错误的地方还请大佬们指出来哦!希望这篇文章可以帮到你!(溜