`

移动端安卓和IOS开发框架Framework7教程-下拉刷新

阅读更多

下拉刷新是一个特别的组件,可以用来初始化页面内容的刷新。

下拉刷新的HTML布局结构

让我们来看一下如何把下拉刷新组件集成到页面中:

  1. <div class="page">
  2.   <!-- Page content应该拥有"pull-to-refresh-content"类 -->
  3.   <div class="page-content pull-to-refresh-content" data-ptr-distance="55">
  4.     <!-- 默认的下拉刷新层 -->
  5.     <div class="pull-to-refresh-layer">
  6.       <div class="preloader"></div>
  7.       <div class="pull-to-refresh-arrow"></div>
  8.     </div>
  9.  
  10.     <!-- 下面是正文 -->
  11.     <div class="list-block">
  12.       ...
  13.     </div>
  14.   </div>
  15. </div>
复制

其中:

  • page-content需要额外添加pull-to-refresh-content类,它会开启下拉刷新。
  • pull-to-refresh-layer 平时隐藏的布局块,包含下拉刷新的可视元素:加载提示符和上/下箭头。
  • data-ptr-distance="55" 可以配置下拉刷新的下拉距离. 默认是 44px.

下拉刷新的行为顺序

当用户开始下拉的时候, pull-to-refresh-layer会增加一个额外的 pull-down 类。

当用户下拉使pull-to-refresh-content元素下降超过44px时(即pull-to-refresh-layer元素完全可视),pull-to-refresh-layer元素将自动添加"pull-up"类,使箭头转向180度,以提醒用户界面将在他松开手指时刷新。

当用户在“pull-up”状态释放下拉区块使页面刷新时,pull-to-refresh-layer区块将会添加一个"refreshing"类。在“refreshing”状态,箭头将会隐藏,同时会展现一个加载提示符。这个时候你通常需要进行Ajax异步请求并刷新页面内容。

下拉刷新事件

以下是下拉刷新的特殊事件,用以帮助我们识别需要刷新界面的时机:

事件(Event) 对象(Target) 描述(Description)
refresh 拥有下拉刷新功能的界面<div class="pull-to-refresh-content"> 事件会在下拉刷新进入“refreshing”状态时触发

重置下拉刷新

在我们刷新页面内容之后,需要重置下拉刷新组件,以使用户可以再次下拉:

myApp.pullToRefreshDone(ptrContent) - 重置特定的下拉刷新界面

  • ptrContent - 我们想要重置的下拉刷新页面的HTML元素或CSS选择器

JS触发下拉刷新

我们也可以通过下面的方法手工触发下拉刷新:

myApp.pullToRefreshTrigger(ptrContent) - 触发特定界面的下拉刷新

  • ptrContent - 我们想要触发的下拉刷新页面的HTML元素或CSS选择器

示例

  1. <div class="page-content pull-to-refresh-content">
  2.   <div class="pull-to-refresh-layer">
  3.     <div class="preloader"></div>
  4.     <div class="pull-to-refresh-arrow"></div>
  5.   </div>
  6.   <div class="list-block media-list">
  7.     <ul>
  8.       <li class="item-content">
  9.         <div class="item-media"><img src="http://hhhhold.com/88/d/jpg?1" width="44"></div>
  10.         <div class="item-inner">
  11.           <div class="item-title-row">
  12.             <div class="item-title">Yellow Submarine</div>
  13.           </div>
  14.           <div class="item-subtitle">Beatles</div>
  15.         </div>
  16.       </li>
  17.       ...
  18.     </ul>
  19.     <div class="list-block-label">
  20.       <p>Just pull page down to let the magic happen.</p>
  21.     </div>
  22.   </div>
  23. </div>
复制

 

  1. var myApp = new Framework7();
  2.  
  3. var $$ = Dom7;
  4.  
  5. // 随意编造的内容
  6. var songs = ['Yellow Submarine', 'Don\'t Stop Me Now', 'Billie Jean', 'Californication'];
  7. var authors = ['Beatles', 'Queen', 'Michael Jackson', 'Red Hot Chili Peppers'];
  8.  
  9. // 下拉刷新页面
  10. var ptrContent = $$('.pull-to-refresh-content');
  11.  
  12. // 添加'refresh'监听器
  13. ptrContent.on('refresh', function (e) {
  14.     // 模拟2s的加载过程
  15.     setTimeout(function () {
  16.         // 随机图片
  17.         var picURL = 'http://hhhhold.com/88/d/jpg?' + Math.round(Math.random() * 100);
  18.         // 随机音乐
  19.         var song = songs[Math.floor(Math.random() * songs.length)];
  20.         // 随机作者
  21.         var author = authors[Math.floor(Math.random() * authors.length)];
  22.         // 列表元素的HTML字符串
  23.         var itemHTML = '<li class="item-content">' +
  24.                           '<div class="item-media"><img src="' + picURL + '" width="44"/></div>' +
  25.                           '<div class="item-inner">' +
  26.                             '<div class="item-title-row">' +
  27.                               '<div class="item-title">' + song + '</div>' +
  28.                             '</div>' +
  29.                             '<div class="item-subtitle">' + author + '</div>' +
  30.                           '</div>' +
  31.                         '</li>';
  32.         // 前插新列表元素
  33.         ptrContent.find('ul').prepend(itemHTML);
  34.         // 加载完毕需要重置
  35.         myApp.pullToRefreshDone();
  36.     }, 2000);
  37. });
复制

  实例预览

销毁/禁用下拉刷新

有的时候你可能需要禁用下拉刷新。我们可以通过这个方法来做到:

myApp.destroyPullToRefresh(ptrContent) - 销毁/禁用 下拉刷新

  • ptrContent - HTMLElement or string (CSS 选择器) 我们需要销毁/禁用的下拉刷新

And if we need to initialize/enable it again:

然后我们可以再次初始化/启用它:

myApp.initPullToRefresh(ptrContent) - 初始化/启用下拉刷新

    • ptrContent - HTMLElement or string (with CSS Selector) 需要启用的下拉刷新

 

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

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

相关推荐

    ios-下拉刷新-自定义.zip

    在iOS开发中,下拉刷新(Pull-to-Refresh)是一种常见的功能,允许用户通过向下滚动视图来触发数据的更新。这个"ios-下拉刷新-自定义.zip"文件很显然是一个关于如何在iOS应用中实现自定义下拉刷新效果的资源包。...

    IOS UI设计模式 - 下拉刷新

    在iOS应用开发中,UI设计模式对于提升用户体验至关重要。下拉刷新(Pull-to-Refresh)是一种常见的用户界面设计,允许用户通过在列表顶部向下拉动来更新内容。这种模式广泛应用于新闻、社交媒体和邮件等应用程序,...

    ios-下拉刷新控件.zip

    首先, MJRefresh 是一个非常流行的开源库,用于在iOS应用中实现下拉刷新和上拉加载更多效果。它提供了多种风格的动画,并且易于集成和自定义。在Swift版本中,开发者可能面临的主要任务是将MJRefresh的API适配为...

    ios-下拉刷新 带网络请求(Swift).zip

    在iOS开发中,下拉刷新是一种常见的用户交互设计,它允许用户通过向下拉动视图来触发数据的更新,通常与网络请求相结合以获取最新的信息。本项目“ios-下拉刷新 带网络请求(Swift).zip”显然是一个使用Swift编程...

    HTML移动端框架Framework7.zip

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

    IOS下拉刷新Demo实现

    本教程将介绍如何使用EGOTableViewPullRefresh开源库在iOS应用中实现下拉刷新功能,并针对原代码进行一些自定义以支持中英文显示和调整刷新时间格式。 首先,EGOTableViewPullRefresh是由Egor Gorin开发的一个轻量...

    iOS开发视频教程

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

    ios-下拉刷新.zip

    本教程将深入探讨下拉刷新的概念、实现方式以及相关的iOS开发知识点。 1. **下拉刷新概念** 下拉刷新(Pull-to-Refresh)是移动应用中的一个交互设计模式,当用户在顶部向下拖动内容列表时,会显示一个加载指示器...

    ios-下拉刷新 上拉加载.zip

    在iOS开发中,"下拉...通过研究这个示例,开发者可以掌握下拉刷新和上拉加载的基本实现,并理解如何在自己的应用中实现类似功能。对于iOS开发者来说,熟悉这些交互模式并能够灵活运用是提高用户体验的关键技能之一。

    ios-水滴效果的下拉刷新.zip

    在iOS开发中,下拉刷新(Pull-to-Refresh)是一种常见的用户交互设计,它允许用户通过在顶部向下拉动视图来触发数据的更新。在这个名为"ios-水滴效果的下拉刷新.zip"的压缩包中,开发者分享了一个自封装的水滴动画...

    ios-QQ下拉刷新(低仿,封装).zip

    在iOS开发中,实现下拉刷新功能是一种常见的需求,它能为用户带来更友好的交互体验。本项目“ios-QQ下拉刷新(低仿,封装).zip”旨在模仿QQ应用中的下拉刷新橡皮泥效果,虽然目前的实现属于低仿版本,但已进行了基本的...

    ios-自定义下拉刷新动画.zip

    在iOS应用开发中,下拉刷新(Pull-to-Refresh)是一种常见的交互设计,它允许用户通过下拉列表来触发刷新操作。本项目“ios-自定义下拉刷新动画.zip”聚焦于如何使用Swift语言实现一个自定义的下拉刷新动画效果。在...

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

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

    移动端下拉刷新

    移动端下拉刷新需要考虑到不同设备和浏览器的兼容性,尤其是老版本的Android和iOS设备。对于不支持某些特性的浏览器,可能需要提供备选方案。 5. 设计考量: 在设计下拉刷新时,除了功能实现,还要注意用户体验。...

    ios开发 AES-128-ECB加密

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

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

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

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

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

    iOS-自定义下拉刷新上拉加载(可根据自己的需求改)

    在iOS开发中,用户界面的交互性和动态性是提升用户体验的关键因素之一,而下拉刷新和上拉加载功能就是这种体验的重要组成部分。本教程将详细介绍如何在iOS项目中实现自定义的下拉刷新和上拉加载,使得开发者可以根据...

    仿QQ下拉刷新

    【仿QQ下拉刷新】是一种常见的移动应用交互设计,它让用户在顶部下拉时触发页面内容的刷新。这种设计在QQ等社交应用中被广泛采用,后来成为了许多Android和iOS应用的标准特性。实现这一功能主要涉及到滚动视图、动画...

Global site tag (gtag.js) - Google Analytics