码迷,mamicode.com
首页 > 其他好文 > 详细

Framework7学习笔记之 无限滚动(滚动到底部时加载新内容)

时间:2018-02-22 22:05:47      阅读:323      评论:0      收藏:0      [点我收藏+]

标签:rem   ini   dom   body   loader   function   pos   加载   als   

 

一:为页面添加无限滚动控件

    在可滚动的容器上(一般为page-content)添加“infinite-scroll”类;在页面底部定义 加载指示器。

<div class="page">
    <div class="page-content infinite-scroll" data-distance="100">
        ... 

    <!-- 加载提示符 -->
    <div class="infinite-scroll-preloader">
    <div class="preloader"></div> </div>
    </div>
</div>

 

二:在js中监听滚动到底部的刷新事件,触发加载新内容

var $$ = Dom7;
 
// 加载flag
var loading = false;
 
// 上次加载的序号
var lastIndex = $$(‘.list-block li‘).length;
 
// 最多可加载的条目:本页面最多加载多少内容
var maxItems = 60;
 
// 每次加载添加多少条目:每次滑动到底部时加载多少条
var itemsPerLoad = 20;
 
// 注册‘infinite‘事件处理函数
$$(‘.infinite-scroll‘).on(‘infinite‘, function () {
 
  // 如果正在加载,则退出函数
  if (loading) return;
 
  // 设置flag:开始加载
  loading = true;
 
  加载操作....//拉取新数据
  
  if (lastIndex >= maxItems) {
      // 加载到页面最大限额了,则注销无限加载事件,以防不必要的加载
      myApp.detachInfiniteScroll($$(‘.infinite-scroll‘));
      // 删除加载提示符
      $$(‘.infinite-scroll-preloader‘).remove();
      return;
    }
 
    // 生成新条目的HTML
    var html = ‘‘;
    for (var i = lastIndex + 1; i <= lastIndex + itemsPerLoad; i++) {
      html += ‘<li class="item-content"><div class="item-inner"><div class="item-title">新条目内容...</div></div></li>‘;
    }
 
    // 添加新条目:插入到原页面列表
    $$(‘.list-block ul‘).append(html);
 
    // 更新最后加载的序号
    lastIndex = $$(‘.list-block li‘).length;

    //加载完毕,设置为false
    loading = false;

});          

 

Framework7学习笔记之 无限滚动(滚动到底部时加载新内容)

标签:rem   ini   dom   body   loader   function   pos   加载   als   

原文地址:https://www.cnblogs.com/ygj0930/p/8460252.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!