- Framework7教程
- Framework7 - 主页
- Framework7 - 概述
- Framework7 - 环境
- Framework7 组件
- Framework7 - 布局
- Framework7 - 导航栏
- Framework7 - 工具栏
- Framework7 - 搜索栏
- Framework7 - 状态栏
- Framework7 - 侧面板
- Framework7 - 内容块
- Framework7 - 布局网格
- Framework7 - 覆盖层
- Framework7 - 预加载器
- Framework7 - 进度条
- Framework7 - 列表视图
- Framework7 - 手风琴
- Framework7 - 卡片
- Framework7 - 芯片
- Framework7 - 按钮
- Framework7 - 操作按钮
- Framework7 - 表格
- Framework7 - 选项卡
- Framework7 - Swiper 滑块
- Framework7 - 照片浏览器
- Framework7 - 自动完成
- Framework7 - 选择器
- Framework7 - 日历
- Framework7 - 刷新
- Framework7 - 无限滚动
- Framework7 - 消息
- Framework7 - 消息栏
- Framework7 - 通知
- Framework7 - 延迟加载
- Framework7 样式
- Framework7 - 颜色主题
- Framework7 - 细线
- Framework7 模板
- Framework7 - 模板概述
- Framework7 - 自动编译
- Framework7 - Template7 页面
- Framework7 快速点击
- Framework7 - 活动状态
- Framework7 - 点击保持事件
- Framework7 - 触摸波纹
- Framework7 有用的资源
- Framework7 - 快速指南
- Framework7 - 有用的资源
- Framework7 - 讨论
Framework7 - 刷新
描述
它是一个特殊的组件,用于通过拉取来刷新(重新加载)页面内容。
以下代码显示了如何刷新页面内容 -
<div class = "page"> <!-- Page content should have additional "pull-to-refresh-content" class --> <div class = "page-content pull-to-refresh-content" data-ptr-distance = "55"> <!-- Default pull to refresh layer--> <div class = "pull-to-refresh-layer"> <div class = "preloader"></div> <div class = "pull-to-refresh-arrow"></div> </div> <!-- usual content below --> <div class = "list-block"> ... </div> </div>
以下类用于刷新 -
page-content - 它有一个额外的pull-to-refresh-content类,并且需要启用 pull-to-refresh。
pull-to-refresh-layer - 它是一个隐藏层,用于拉动刷新视觉元素,它只是一个预加载器和一个箭头。
data-ptr-distance = "55" - 这是附加属性,允许您设置自定义“拉动刷新”触发距离,其默认值为 44px。
拉动刷新事件
在“拉动刷新”中,有一些 JavaScript 事件,如下表所示 -
序列号 | 活动及描述 | 目标 |
---|---|---|
1 | 拉启动 每当您开始拉动刷新内容时都会触发它。 |
拉动刷新内容。 <div class = "pull-to-refresh-content"> |
2 | 拉动 当您拉动刷新内容时会触发它。 |
拉动刷新内容。 <div class="pull-to-refresh-content"> |
3 | 拉伦德 每当您释放拉动刷新内容时都会触发它。 |
拉动刷新内容。 <div class="pull-to-refresh-content"> |
4 | 刷新 当拉刷新进入“正在刷新”状态时,会触发该事件。 |
拉动刷新内容。 <div class="pull-to-refresh-content"> |
5 | 刷新完成 刷新后会触发,回到初始状态。这将在调用pullToRefreshDone方法后完成。 |
拉动刷新内容。 <div class="pull-to-refresh-content"> |
有一些App的方法可以与Pull to Refresh一起使用。
序列号 | 应用程序的方法和说明 |
---|---|
1 | myApp.pullToRefreshDone(ptrContent) 它用于重置下拉刷新内容。 |
2 | myApp.pullToRefreshTrigger(ptrContent) 用于在指定的拉刷新内容时触发刷新。 |
3 | myApp.destroyPullToRefresh(ptrContent) 它用于销毁/禁用指定拉动刷新内容的拉动刷新。 |
4 | myApp.initPullToRefresh(ptrContent) 它用于初始化/启用 拉动刷新内容。 |
其中ptrContent用于HTMLElement或字符串来拉取刷新内容以重置/触发或禁用/启用。
例子
以下示例演示了如何使用刷新组件来启动页面内容的刷新 -
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <title>Pull To Refresh</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.colors.min.css"> </head> <div class="views"> <div class="view view-main"> <div class="pages"> <div data-page="home" class="page navbar-fixed"> <div class="navbar"> <div class="navbar-inner"> <div class="left"> </div> <div class="center">Pull To Refresh</div> <div class="right"> </div> </div> </div> <div class="page-content pull-to-refresh-content"> <div class="pull-to-refresh-layer"> <div class="preloader"></div> <div class="pull-to-refresh-arrow"></div> </div> <div class="list-block media-list"> <ul> <li class="item-content"> <div class="item-media"><img src="/framework7/images/apple.png" width="44"></div> <div class="item-inner"> <div class="item-title-row"> <div class="item-title">apple</div> </div> </div> </li> <li class="item-content"> <div class="item-media"><img src="/framework7/images/froots_img.jpg" width="44"></div> <div class="item-inner"> <div class="item-title-row"> <div class="item-title">strawberry</div> </div> </div> </li> <li class="item-content"> <div class="item-media"><img src="/framework7/images/mango.jpg" width="44"></div> <div class="item-inner"> <div class="item-title-row"> <div class="item-title">Mango</div> </div> </div> </li> </ul> <div class="list-block-label"> <p>Just pull page down to let the magic happen.</p> </div> </div> </div> </div> </div> </div> </div> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js"></script> <script> var myApp = new Framework7(); var $$ = Dom7; // Dummy Content var fruits = ['mango', 'orange', 'watermelon', 'banana']; // Pull to refresh content var ptrContent = $$('.pull-to-refresh-content'); // Add 'refresh' listener on it ptrContent.on('refresh', function (e) { // Emulate 2s loading setTimeout(function () { var picURL = 'images/Fruit.jpg' + Math.round(Math.random() * 100); var fruit = fruits[Math.floor(Math.random() * fruits.length)]; var itemHTML = '<li class="item-content">' + '<div class="item-media"><img src="/framework7/images/Fruit.jpg" width="44"/></div>' + '<div class="item-inner">' + '<div class="item-title-row">' + '<div class="item-title">' + fruit + '</div>' + '</div>' + '</div>' + '</li>'; // Prepend new list element ptrContent.find('ul').prepend(itemHTML); // When loading done, we need to reset it myApp.pullToRefreshDone(); }, 2000); }); </script> </html>
输出
让我们执行以下步骤来看看上面给出的代码是如何工作的 -
将上面给定的 HTML 代码保存为服务器根文件夹中的pull_to_refresh.html文件。
以 http://localhost/pull_to_refresh.html 打开此 HTML 文件,输出如下所示。
当用户下拉时,页面将刷新内容。