文章详情

橘生淮北

给博客添加了一个新功能

947 人围观  代码无刷新

一直都想给博客添加一个无刷新加载文章效果

sw2.png
  百度上找了好多教程都没有找到合适的。其中尝试了 TYPECHO启用全站PJAX让Typecho无限滚动加载的方法 都以失败而告终。

  今天终于把这个问题完美解决了。代码也很简单,特此存档记录!代码如下:

代码

  • index.php

 把原来的翻页代

<p class="weui-btn weui-btn_mini weui-btn_default" style="float:right;"><?php $this->pageLink('下一页','next'); ?></p>  
                    <p class="weui-btn weui-btn_mini weui-btn_default" style="float:left;"><?php $this->pageLink('上一页'); ?></p>

改为

<?php $this->pageLink('加载更多','next'); ?>

文章列表DIV添加 id="content"

  • footer.php添加以下代码调用
<script>
//点击加载更多
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('.aui-flex-list'); //从数据中挑出文章数据,请根据实际情况更改
                    $('#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>

总结

  期间还出现了一个小BUG,去群里问一圈都没人HELP,只好又打开F12去调试代码,最终完美解决,所以呀,多百度,多测试,多动手,不会的慢慢就会拉。


请博主吃辣条

你们做博客/网站/网页/之类的是干嘛用?

六一将至,回忆起以前的一些事



  评论

qq-腾讯QQ