`

移动端安卓和IOS开发框架Framework7教程-无限滚动

阅读更多

无限滚动用来在页面滚动到接近底部时加载新内容或进行其他操作。

无限滚动HTML结构

你只需在可滚动的容器上添加“infinite-scroll”类,一般是页面滚动区域 - <div class="page-content">:

  1. <div class="page">
  2.     <div class="page-content infinite-scroll" data-distance="100">
  3.         ... 
  4.     </div>
  5. </div>
复制

其中:

  • div class="page-content infinite-scroll"是我们无限滚动的容器

  • data-distance属性用来配置页面滚动到离底部多远时触发无限滚动事件,默认是50 (px)

    data-distance attribute allows to configure distance from the bottom of page (in px) to trigger infinite scroll event. By default, if note specified, it is 50 (px)

Infinite Scroll On Top

If you need to use infinite scroll on top the page (when it scrolled to top), you need to add additional "infinite-scroll-top" class to "page-content":

  1. <div class="page">
  2.     <div class="page-content infinite-scroll infinite-scroll-top">
  3.         ... 
  4.     </div>
  5. </div>
复制

无限滚动事件

事件(Event) 对象(Target) 描述(Description)
infinite 可无限滚动的容器<div class="page-content infinite-scroll"> 事件会在页面滚动至距底部还有特定距离(可在data-distance中配置)时触发

无限滚动API

有2个App方法:

myApp.attachInfiniteScroll(container) - 为指定的HTML元素容器添加无限滚动事件监听器

  • parameters - 表示无限滚动容器的HTML元素或CSS选择器。必选。

myApp.detachInfiniteScroll(container) - 从指定的HTML元素容器删除无限滚动事件监听器

  • parameters - 表示无限滚动容器的HTML元素或CSS选择器。必选。

注意,仅在你使用myApp.detachInfiniteScroll方法删除过事件监听器后,才可能需要使用myApp.attachInfiniteScroll方法,因为无限滚动组件的事件监听器会在“pageInit”时被自动添加。

示例

实例预览

  1. <div class="page-content infinite-scroll">
  2.   <div class="list-block">
  3.     <ul>
  4.       <li class="item-content">
  5.         <div class="item-inner">
  6.           <div class="item-title">Item 1</div>
  7.         </div>
  8.       </li>
  9.       <li class="item-content">
  10.         <div class="item-inner">
  11.           <div class="item-title">Item 2</div>
  12.         </div>
  13.       </li>
  14.       ...
  15.       <li class="item-content">
  16.         <div class="item-inner">
  17.           <div class="item-title">Item 20</div>
  18.         </div>
  19.       </li>
  20.     </ul>
  21.   </div>
  22.   <!-- 加载提示符 -->
  23.   <div class="infinite-scroll-preloader">
  24.     <div class="preloader"></div>
  25.   </div>
  26. </div>
复制
  1. .infinite-scroll-preloader {
  2.   margin-top:-20px;
  3.   margin-bottom: 10px;
  4.   text-align: center;
  5. }
  6. .infinite-scroll-preloader .preloader {
  7.   width:34px;
  8.   height:34px;
  9. }
复制

 

  1. var myApp = new Framework7(); 
  2.  
  3. var $$ = Dom7;
  4.  
  5. // 加载flag
  6. var loading = false;
  7.  
  8. // 上次加载的序号
  9. var lastIndex = $$('.list-block li').length;
  10.  
  11. // 最多可加载的条目
  12. var maxItems = 60;
  13.  
  14. // 每次加载添加多少条目
  15. var itemsPerLoad = 20;
  16.  
  17. // 注册'infinite'事件处理函数
  18. $$('.infinite-scroll').on('infinite', function () {
  19.  
  20.   // 如果正在加载,则退出
  21.   if (loading) return;
  22.  
  23.   // 设置flag
  24.   loading = true;
  25.  
  26.   // 模拟1s的加载过程
  27.   setTimeout(function () {
  28.     // 重置加载flag
  29.     loading = false;
  30.  
  31.     if (lastIndex >= maxItems) {
  32.       // 加载完毕,则注销无限加载事件,以防不必要的加载
  33.       myApp.detachInfiniteScroll($$('.infinite-scroll'));
  34.       // 删除加载提示符
  35.       $$('.infinite-scroll-preloader').remove();
  36.       return;
  37.     }
  38.  
  39.     // 生成新条目的HTML
  40.     var html = '';
  41.     for (var i = lastIndex + 1; i <= lastIndex + itemsPerLoad; i++) {
  42.       html += '<li class="item-content"><div class="item-inner"><div class="item-title">Item ' + i + '</div></div></li>';
  43.     }
  44.  
  45.     // 添加新条目
  46.     $$('.list-block ul').append(html);
  47.  
  48.     // 更新最后加载的序号
  49.     lastIndex = $$('.list-block li').length;
  50.   }, 1000);
  51. });
复制

 

2
0
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ios-无限滚动浏览.zip

    在iOS开发中,"ios-无限滚动浏览.zip"是一个典型的移动应用组件,它涉及到了视图动画和用户体验设计的关键技术。这个组件的核心功能是实现一个顶部广告页的无限滚动效果,这种效果通常用于轮播图或者商品展示等场景...

    iOS开发视频教程

    资源名称:iOS开发视频教程资源目录:【】iOS开发视频教程-第01讲-iOS历史介绍【】iOS开发视频教程-第02讲-XCode安装【】iOS开发视频教程-第03讲-UIView_PPT【】iOS开发视频教程-第04讲-UILabel【】iOS开发视频教程-...

    HTML移动端框架Framework7.zip

    Framework7 是免费开源的 HTML 移动端框架,用来开发混合移动端应用或者 iOS 7 的 Web 应用,并且带有 iOS 7 的原生外观和感觉。Framework7 也是独立的原型应用工具。Framework7 使用 Javascript,CSS 和 HTML 来...

    iOS开发系列视频教程:objective-C

    资源名称:iOS开发系列视频教程:Objective-C   资源目录: 【】无限互联iOS开发视频教程-Objective-C部分(第一部分) 【】无限互联iOS开发视频教程-Objective-C部分(第七部分) 【】无限...

    Framework7Vue使用Framework7和Vue构建完整的iOS和Android应用程序

    Framework7是一款免费、开源的移动应用框架,旨在为开发者提供构建iOS和Android应用的全套工具。它提供了丰富的组件库,包括导航、表单、视图、滑块等,使开发者能够轻松实现原生应用的界面和交互效果。 二、Vue.js...

    UI第一章:无限互联iOS开发教程课件-- iPhone开发入门

    ### UI第一章:无限互联iOS开发教程课件 -- iPhone开发入门 #### iOS系统概述与架构 - **iOS系统**:作为苹果公司专为iPhone、iPod touch及iPad设计的操作系统,iOS自诞生以来就以其简洁易用的特点受到全球用户的...

    ios-无限单行滚动的日历.zip

    在iOS开发中,创建一个无限单行滚动的日历是一个常见的需求,这通常涉及到自定义UI控件和事件处理。这个名为“ios-无限单行滚动的日历.zip”的压缩包文件包含了一个名为“CYHcalendar”的项目,它提供了一种实现这一...

    framework7-icons, Framework7的免费iOS图标字体.zip

    framework7-icons, Framework7的免费iOS图标字体 Framework7图标Framework7的高级和免费ios图标字体。这种字体可以用在 Framework7插件中,但是你可以在任何地方看到它适合它,个人或者商业。 它是免费的使用和许可...

    ios开发 AES-128-ECB加密

    之前遇到的需求,ios上没有类似的实现。搞了好久在网上搜了很多资料都不能解决最后找到了一个c/c++的底层源码,才实现了最后整理了下上传了。是个ios的demo很详细你定能看懂的。运行在xcode环境下,关键算法的文件是...

    PyPI 官网下载 | pyobjc-framework-Cocoa-6.0.1.tar.gz

    Objective-C是苹果公司开发的一种面向对象的编程语言,广泛应用于MacOS和iOS平台的软件开发。Cocoa是Apple为这两种操作系统提供的原生开发框架,包含了大量用于构建图形用户界面、处理事件、管理文件系统等任务的...

    iOS UIPickView实现无限滚动效果

    在iOS开发中,UIPickerView是一个非常常用的组件,它用于展示一系列可滚动的选项供用户选择。当需要创建类似时钟选择器的效果,即让用户在有限的范围内进行循环选择时,我们可以利用UIPickerView实现无限滚动。这个...

    iPhone开发入门到精通视频教程

    iPhone开发入门到精通视频教程资源目录:【】iOS开发源码系列---工具【】iOS开发源码系列---应用【】iOS开发源码系列---游戏【】iOS开发源码系列---类库与框架【】iOS开发真机测试与发布【】iOS开发视频教程01~05...

    WebRTC.framework iOS Debug arm64与x86-64架构

    iOS Debug环境 arm64与x86_64架构 WebRTC.framework Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64] Mach-O 64-bit dynamically linked ...

    ios-无限滚动样式的自定义label 类似抖音音乐滚动样式 根据文本内容自适应 不管文本长度多少做到无限不间断滚动.zip

    在iOS开发中,创建一种类似抖音音乐滚动样式的无限滚动标签是吸引用户注意力并提供信息展示的有效方式。这种效果通常通过自定义UILabel实现,能够根据文本内容自适应,无论文本长度多长,都能做到不间断地循环滚动。...

    Framework7用于构建iOS和Android应用全功能移动HTML框架

    Framework7是一款强大的、免费的HTML5移动应用框架,专为构建具有原生iOS和Android界面风格的混合式移动应用而设计。它允许开发者使用Web技术(如HTML, CSS, JavaScript)来创建高度交互且功能丰富的应用程序,同时...

    IOS应用源码Demo-iOS framework 制作教程【非静态包】-毕设学习.zip

    提供的【应用】★★★★-iOS framework 制作教程【非静态包】源码示例,应该包含了完整的框架创建过程和相关代码,你可以通过阅读和运行这个项目来加深理解。在实践中,你可以尝试修改源代码,添加新的功能,或者...

    移动端兼容安卓IOS的高仿支付密码输入功能

    移动端兼容安卓IOS的高仿支付密码输入功能。 类似支付宝,微信的支付密码功能。

    手机移动端电商,IOS,Android

    总之,手机移动端电商在iOS和Android平台上的实现涉及多方面的技术和策略。从H5页面的构建到原生功能的集成,再到用户体验的优化,每一个环节都需要精心设计和实施。随着技术的不断发展,未来的移动端电商将更加智能...

    Framework7是一个用于构建iOS和Android应用的全功能HTML框架

    Framework7 是免费开源的 HTML 移动端框架,用来开发混合移动端应用或者 iOS 7 的 Web 应用,并且带有 iOS 7 的原生外观和感觉。Framework7 也是独立的原型应用工具。

    ios-无限循环滚动banner.zip

    在iOS开发中,一个常见的需求是创建一个无限循环滚动的Banner视图,它可以用来展示广告、推荐内容或者轮播图片。这个"ios-无限循环滚动banner.zip"项目就是专门针对这个需求的一个解决方案。项目中的主要组件是名为...

Global site tag (gtag.js) - Google Analytics