让Typecho无限滚动加载的方法

Typecho教程 typecho 无限加载

据统计,据媒体报道,据各种经验之谈:用户不喜欢点击,更爱滚动!所以,之前挺流行的文章分页没有了,沿用了几百年的“下一页”也被无限load取代。瀑布流和Twitter更是推动了无限load的普及。

这里介绍一个jQuery插件:Infinite AJAX Scroll,通过这个插件能快速实现无限滚动翻页。因为是jQuery所以到处都能用,这里我们以Typecho作为例子。

第一步接入Infinite AJAX Scroll

下载Infinite AJAX Scroll,放到对应主题的js文件夹中。因为是jQuery插件,我们还要先连上jQuery。打开header.php页面,插入如下代码:

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="<?php $this->options->themeUrl('js/jquery-ias.js'); ?>"></script>

第二步为Typecho加上分页

如果看官网文档的话,它会告诉你分页代码用带有数字列表的<?php $this->pageNav(); ?>。如果你用的是这个代码,请务必换成<?php $this->pageLink('下一页','next'); ?>

步骤三调整代码

把下面这段代码插在步骤一代码的后面即可,然后我们要做一些调整。

<script type="text/javascript">
var ias = jQuery.ias({
container:  '#posts',    //大容器
item:       '.post',    //循环容器
pagination: '#pagination',    //分页容器
next:       '.next'    //下一页的class
});
 ias.extension(new IASTriggerExtension({
        text: '加载更多', //此选项为需要点击时的文字
        offset: 2, //load多少页后显示加载更多按钮
    }));
ias.extension(new IASSpinnerExtension());    //加载时的图片
ias.extension(new IASNoneLeftExtension({text: "已经没有文章了"}));    //到底后显示的文字
</script>

我们需要把容器对应的id和class填上,
item指的是循环列表的容器,就是列表中的文章最外层div的id或者class
container是整个大容器,就是包裹文章列表的div的id或者class
pagination是分页所在的容器,就是包裹分页按钮的div的id或者class
next是下一页对应的class,就是分页按钮超链接的class
如果没有id或者class,就自己加一个。为了更方便理解,我偷了个图,基本就是这样的

3460088466.jpg

步骤四重载函数

因为文章可能含有缩略图,而缩略图可能会用到惰性加载的js,所以ajax加载文章后,缩略图可能加载异常,这时我们需要在步骤三的代码最后加上一条

    ias.on('rendered', function(items) {
    //你的重载函数
    })

常见的惰性加载需要重载的函数
Lazyload

    $("img.lazy").lazyload({effect:"fadeIn"}); //这里是你调用Lazyload的代码

blazy

;(function() {
            // Initialize 
            var bLazy = new Blazy();
        })(); 

参考:
http://www.19871222.com/infinite-ajax-scroll.html
https://salongweb.com/infinite-ajax-scroll.html

27条评论

    欧文斯

    有办法实现评论懒加载吗

    游客 Windows10 465天前回复

    夏目贵志

    小白一脸蒙蔽中~

    游客 Windows10 589天前回复

    那他

    可以,有方法了。

    游客 Windows7 660天前回复

    devoted

    下载下来没有“jquery-ias.min.js”这个文件

    游客 Windows10 662天前回复

      Jrotty
      @devoted

      用src下的jquery-ias.js也行哈

      作者 Windows10 662天前回复

        devoted
        @Jrotty

        试过了,报错 @(黑线)

        游客 Windows10 662天前回复

          devoted
          @devoted

          你用的评论邮箱提醒插件能否给我发一份?我的commenttomail那个版本有时候会漏发邮件

          游客 Windows10 662天前回复

    后宫学长

    评论BUG测试重现成功。
    重新过程:
    点开一篇文章,再点击菜单栏的页面,然后再浏览器返回到刚刚打开的第一页,再评论就能同时提交两条…… @(喷)

    游客 Windows10 665天前回复

      Jrotty
      @后宫学长

      你按你说的步骤再试试,看看能重复触发不?这个bug有点迷(之前也遇到过这种情况),不知道是模板的原因还是程序的

      作者 安卓奥利奥 664天前回复

        尚寂新
        @Jrotty

        ajax评论的js加了date-no-instant应该就能重现这个问题(只是推测) 我现在站点所有的js都没加datenoinstant

        游客 安卓棒棒糖 664天前回复

    后宫学长

    其实很讨厌自动加载……

    嘛,发现不少用你的主题的都把版权去掉了,WTF? @(狂汗)

    游客 Windows10 665天前回复

      Jrotty
      @后宫学长

      因为我把我写的版权保护功能删掉了…

      作者 安卓奥利奥 664天前回复

        狂放
        @Jrotty

        @(滑稽) 快说怎么写的 @(滑稽) 按理说不是没有不能解的密吧 @(滑稽)

        游客 Linux 591天前回复

      烟雨寒云
      @后宫学长

      我是被群里老哥们怂恿才去掉的,相信我,我是无辜的 @(滑稽)

      游客 安卓棉花糖 665天前回复

        后宫学长
        @烟雨寒云

        其实还有别人…… @(阴险)

        游客 Windows10 665天前回复

          烟雨寒云
          @后宫学长

          所以我是被他们怂恿的 @(乖)

          游客 安卓棉花糖 665天前回复

    尚寂新

    期待的终于来了 感谢dalao
    半个月之后去折腾 @(滑稽)

    游客 安卓棒棒糖 665天前回复

      Jrotty
      @尚寂新

      其实这个文章我早收藏了的,昨天刚好用到了,测试没啥问题,就水文了

      作者 安卓奥利奥 664天前回复

    Kevan

    一上来就喜欢看底部的人是不是和这个潮流太格格不入了

    游客 Windows10 665天前回复

    xema

    难道我和潮流脱轨了嘛……对自动加载巨讨厌……看个底部都不给鸡喙

    游客 乌班图 665天前回复

      后宫学长
      @xema

      我也讨厌无限加载。

      游客 Windows10 665天前回复

      Jrotty
      @xema

      没事,我就是正好今天用这个帮助了个人,顺便水个文,自己模板死活有兼容问题 @(笑尿)

      作者 Windows10 665天前回复

    北海

    大佬就是不一样 羡慕!!!!

    游客 Windows7 665天前回复

      Jrotty
      @北海

      然而我的模板还不能完美兼容 @(酸爽)

      作者 Windows10 665天前回复

        北海
        @Jrotty

        过分! 模板都好久不去更新了 懒人

        游客 Windows7 665天前回复

          Jrotty
          @北海

          明明最近都更新了呀

          作者 Windows10 665天前回复

            北海
            @Jrotty

            emmm 我没看到 我去群里面捕捉一下看看!

            游客 Windows7 665天前回复

智能推荐