刷新(Refresh)
描述 (Description)
它是一个特殊的组件,用于通过拉取它来刷新(重新加载)页面内容。
以下代码显示了如何刷新页面内容 -
<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 - 它是一个隐藏层,用于pull to refresh视觉元素,它只是一个预加载器和一个箭头。
data-ptr-distance = "55" - 这是一个附加属性,允许您设置自定义“拉到刷新”触发距离,其默认值为44px。
拉动刷新事件
在“Pull to Refresh”中,有一些JavaScript事件,如下表所示 -
S.No | 活动和描述 | 目标 |
---|---|---|
1 | pullstart 每当您开始提取内容时,它都会被触发。 | 拉动刷新内容。
|
2 | pullmove 当您要刷新内容时会触发它。 | 拉动刷新内容。
|
3 | pullend 每当您释放pull以刷新内容时,它都会被触发。 | 拉动刷新内容。
|
4 | refresh 当刷新进入"refreshing"状态时,将触发此事件。 | 拉动刷新内容。
|
5 | refreshdone 它将在刷新后触发并返回初始状态。 这将在调用pullToRefreshDone方法后完成。 | 拉动刷新内容。
|
有一些App的方法可以与Pull to Refresh一起使用。
S.No | 应用程序的方法和描述 |
---|---|
1 | myApp.pullToRefreshDone(ptrContent) 它用于重置pull-to-refresh内容。 |
2 | myApp.pullToRefreshTrigger(ptrContent) 它用于触发刷新指定的pull to refresh content 。 |
3 | myApp.destroyPullToRefresh(ptrContent) 它用于destroy/disable pull to刷新指定的pull to refresh content 。 |
4 | myApp.initPullToRefresh(ptrContent) 它用于initialize/enable pull to refresh content 。 |
其中ptrContent用于HTMLElement或string拉到刷新内容以重置/触发或禁用/启用。
例子 (Example)
以下示例演示了如何使用刷新组件来启动页面内容的刷新 -
<!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>
<div>
<div>
<div data-page="home">
<div>
<div>
<div> </div>
<div>Pull To Refresh</div>
<div> </div>
</div>
</div>
<div>
<div>
<div></div>
<div></div>
</div>
<div>
<ul>
<li>
<div><img src="/framework7/images/apple.png" width="44"></div>
<div>
<div>
<div>apple</div>
</div>
</div>
</li>
<li>
<div><img src="/framework7/images/froots_img.jpg" width="44"></div>
<div>
<div>
<div>strawberry</div>
</div>
</div>
</li>
<li>
<div><img src="/framework7/images/mango.jpg" width="44"></div>
<div>
<div>
<div>Mango</div>
</div>
</div>
</li>
</ul>
<div>
<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>' +
'<div><img src="/framework7/images/Fruit.jpg" width="44"/></div>' +
'<div>' +
'<div>' +
'<div>' + 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>
输出 (Output)
让我们执行以下步骤,看看上面给出的代码是如何工作的 -
将上面给出的HTML代码保存为服务器根文件夹中的pull_to_refresh.html文件。
以http://localhost/pull_to_refresh.html打开此HTML文件,输出显示如下。
当用户下拉时,页面将刷新内容。