无限滚动插件Infinite Scroll

本文介绍了一款名为InfiniteScroll的插件,该插件用于实现网页的无限滚动效果。文章详细展示了如何通过HTML、CSS及JavaScript进行配置,并解释了关键属性的作用,如设置加载阈值和监听事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一个项目需要用到无限滚动,调查了很多最后用了Infinite Scroll这个插件。

优点

ajax的函数是内部已经封装好,所有不需要单独的调用。

后台返回的形式既可以是静态html形式也可以说json  。

使用infinite-scroll

安装引用就不写了,可以去官网自己看。

1.主的HTML部分

<div class="container"> 

</div>
<div class="page-load-status">
    <div class="loader-ellips infinite-scroll-request"><!-- 在加载时显示 -->
        <span class="loader-ellips__dot"></span>
        <span class="loader-ellips__dot"></span>
        <span class="loader-ellips__dot"></span>
        <span class="loader-ellips__dot"></span>
    </div>
    <p class="infinite-scroll-last">End of content</p><!-- 最后一页加载完了显示 -->
    <p class="infinite-scroll-error">No more pages to load</p><!-- 加载错误的时候显示 -->
</div>

2.主的css部分

body {
  font-family: sans-serif;
  line-height: 1.4;
  font-size: 18px;
  margin: 0 auto;
}

.page-load-status {
  display: none;
  padding-top: 20px;
  border-top: 1px solid #DDD;
  text-align: center;
  color: #777;
}
.loader-ellips {
  font-size: 20px; /* change size here */
  position: relative;
  width: 4em;
  height: 1em;
  margin: 10px auto;
}

.loader-ellips__dot {
  display: block;
  width: 1em;
  height: 1em;
  border-radius: 0.5em;
  background: #555; /* change color here */
  position: absolute;
  animation-duration: 0.5s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
}

.loader-ellips__dot:nth-child(1),
.loader-ellips__dot:nth-child(2) {
  left: 0;
}
.loader-ellips__dot:nth-child(3) { left: 1.5em; }
.loader-ellips__dot:nth-child(4) { left: 3em; }

@keyframes reveal {
  from { transform: scale(0.001); }
  to { transform: scale(1); }
}

@keyframes slide {
  to { transform: translateX(1.5em) }
}

.loader-ellips__dot:nth-child(1) {
  animation-name: reveal;
}

.loader-ellips__dot:nth-child(2),
.loader-ellips__dot:nth-child(3) {
  animation-name: slide;
}

.loader-ellips__dot:nth-child(4) {
  animation-name: reveal;
  animation-direction: reverse;
}

3.页的HTML部分

<div class="container">
    <article class="post">
        <!-- 内容 --> 
    </article>
</div>

4.主的js部分,也是最主要的部分

var infScroll = new infinitescroll('.container', {
    path: function () { 
        var maxPage = 10; //最大页数
        if (this.loadCount < maxPage) {
            var pageNumber = this.loadCount + 1;
            return '/demo/image?page=' + pageNumber;
        }
    },
    append: '.post', // 把页面显示出来的方式,默认是false
//  responseType: 'text', // 设置页面请求返回的响应类型 text时是json
    prefill: true, //预填充 ,加上后append属性必须。
    status: '.page-load-status',
    hideNav: '.pagination',
    history: false, //更改浏览器历史记录和URL。
    scrollThreshold: 100//设置滚动条与滚动区域之间的距离,默认是400
})

5.几个常用的事件

// 页面请求加载下一页时触发。
infScroll.on('request', function (path) {

})

// 页面附加到容器前触发。
infScroll.on('load', function (response, path) {

});

// 页面附加到容器后触发。 append: '.post'有效。
infScroll.on('append', function (response, path, items) {

});

6.最后

其他的功能还有一些,主要还是需要去看官方文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值