- 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-layer - 它是一个隐藏的层,用于 下拉刷新 的视觉元素,它只是一个加载动画和一个箭头。
data-ptr-distance = "55" - 此附加属性允许您设置自定义“下拉刷新”触发距离,其默认值为 44px。
下拉刷新事件
在“下拉刷新”中,有一些 JavaScript 事件,如下表所示:
| 序号 | 事件及描述 | 目标 |
|---|---|---|
| 1 | pullstart 当您开始下拉刷新内容时,将触发此事件。 |
下拉刷新内容。 <div class = "pull-to-refresh-content"> |
| 2 | pullmove 当您正在下拉刷新内容时,将触发此事件。 |
下拉刷新内容。 <div class="pull-to-refresh-content"> |
| 3 | pullend 当您释放下拉刷新内容时,将触发此事件。 |
下拉刷新内容。 <div class="pull-to-refresh-content"> |
| 4 | refresh 当下拉刷新进入 "refreshing" 状态时,将触发此事件。 |
下拉刷新内容。 <div class="pull-to-refresh-content"> |
| 5 | refreshdone 刷新完成后并返回初始状态时,将触发此事件。这将在调用 pullToRefreshDone 方法后完成。 |
下拉刷新内容。 <div class="pull-to-refresh-content"> |
有一些 App 方法可以与下拉刷新一起使用。
| 序号 | App 方法及描述 |
|---|---|
| 1 | myApp.pullToRefreshDone(ptrContent) 用于重置 下拉刷新 内容。 |
| 2 | myApp.pullToRefreshTrigger(ptrContent) 用于在指定的 下拉刷新内容 上触发刷新。 |
| 3 | myApp.destroyPullToRefresh(ptrContent) 用于 销毁/禁用 指定 下拉刷新内容 上的下拉刷新。 |
| 4 | myApp.initPullToRefresh(ptrContent) 用于 初始化/启用 下拉刷新内容。 |
其中 ptrContent 用于 HTMLElement 或 string 到下拉刷新内容,以重置/触发或禁用/启用。
示例
以下示例演示了刷新组件的使用,该组件启动页面内容的刷新:
<!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 文件到服务器根文件夹中。
以 https:///pull_to_refresh.html 的方式打开此 HTML 文件,输出将如下所示。
当用户向下滑动时,页面将使用内容刷新。