Typecho 实现点击加载更多文章

对移动端体验很好的点击加载更多文章功能。

PHP代码

首先找到 index.php, 然后把主题默认的分页导航的容器换成下面的容器。

<!-- typecho用这个 -->
<?php $this->pageLink('点击查看更多','next'); ?>
<!-- wordpress用这个 -->
<?php next_posts_link(__('点击查看更多')); ?>

JS代码

然后找到你主题的 footer.php,把下面的 js 代码丢 </body> 前面进去就可以了。

<script type="text/javascript">
//点击加载更多
jQuery(document).ready(function($) {
    //点击下一页的链接(即那个a标签)
    $('.next').click(function() {
        $this = $(this);
        $this.addClass('loading').text('正在努力加载'); //给a标签加载一个loading的class属性,用来添加加载效果
        var href = $this.attr('href'); //获取下一页的链接地址
        if (href != undefined) { //如果地址存在
            $.ajax({ //发起ajax请求
                url: href,
                //请求的地址就是下一页的链接
                type: 'get',
                //请求类型是get
                error: function(request) {
                    //如果发生错误怎么处理
                },
                success: function(data) { //请求成功
                    $this.removeClass('loading').text('点击查看更多'); //移除loading属性
                    var $res = $(data).find('.post'); //从数据中挑出文章数据,请根据实际情况更改
                    $('#content').append($res.fadeIn(500)); //将数据加载加进posts-loop的标签中。
                    var newhref = $(data).find('.next').attr('href'); //找出新的下一页链接
                    if (newhref != undefined) {
                        $('.next').attr('href', newhref);
                    } else {
                        $('.next').remove(); //如果没有下一页了,隐藏
                    }
                }
            });
        }
        return false;
    });
});
</script>

需要更改的有如下几个数据,

  • .post :文章数据样式标签
  • #content : 文章列表容器

CSS美化

可以试试刚从black1ce偷回来的热乎的css

a.next{display:block;background-color:#f8f8f8;border-radius:8px;font-size:16px;line-height:50px;text-align:center;}

整理自mrju.cn

End
版权声明:若无特殊注明,本文皆为( SKY )原创,转载请保留文章出处。
SKY

SKY

原尼玛博客博主。

Typecho不显示(隐藏)某个特定分类
仿某草社区LOGO

热门推荐

发表评论

    avatar
    假装提交肿...

    已有 2 条评论

    1. XXX XXX  
      2019-07-05 17:26
      回复

      test pinglun

        1. SKY SKY  
          2019-07-05 17:26
          回复

          回复一个