html5下拉刷新框架,Framewrok7 - 下拉刷新功能的实现(附样例)

在移动应用开发中,列表的下拉刷新是一个很常见的功能。Framewrok7本身就自带了一个下拉刷新组件,直接添加到页面上就可以轻松实现下拉刷新功能。而且不仅仅局限在表格上使用,其他需要下拉刷新的地方都可以使用。

一、基础功能介绍

1,效果图

(1)下面给表格添加个下拉刷新功能,下拉时表格上方会有个向下的箭头。

(2)下拉到一定距离放开后,箭头图标变成环形进度条,表示开始加载数据。(这里直接使用本地生成的随机数据作为演示)

(3)数据加载完毕后,进度条消失。表格恢复到原来位置。

9d3a0540c1bc17797d561d2356cae43a.png   

f2fae28972ca675978389f9a31c57464.png   

f98d171aa125e0d90098b2044254c72b.png

2,使用说明

(1)对于允许下拉刷新的 page-content 容器要添加pull-to-refresh-content样式。

(2)页面上还需添加个下拉刷新层(pull-to-refresh-layer),用于显示箭头以及 preloader图标。

(3)数据加载完毕后,我们要手动调用 myApp.pullToRefreshDone()。隐藏下拉层,并将表格恢复原位。

3,样例代码

(1)index.html

hangge.com

(2)my-app.js

// 初始化 app

var myApp = new Framework7({

init: false //禁用App的自动初始化功能

});

// 为便于使用,自定义DOM库名字为$$

var $$ = Dom7;

// 添加首页视图

var mainView = myApp.addView('.view-main', {

// 让这个视图支持动态导航栏

dynamicNavbar: true,

});

//index页面初始化

myApp.onPageInit('index', function (page) {

//初始数据

refreshData();

//下拉刷新

$$('#articles').on('refresh', function (e) {

//为更好的看到效果,这里加个延时

setTimeout(refreshData,700);

});

});

//刷新数据

function refreshData() {

var itemHTML = "";

for(var i=0; i<5; i++){

itemHTML += '

' +

'

' +

'

测试数据'+Math.round(Math.random()*100)+'
' +

'

' +

'

';

}

//重新设置数据

$$('#articles').find('ul').html(itemHTML);

//刷新完毕后,重置下拉状态

myApp.pullToRefreshDone();

}

//初始化应用

myApp.init();

二、高级用法

1,修改下拉刷新的触发距离

上面的样例我们使用默认的触发距离(即下拉 44px距离后开始执行刷新操作)。通过 data-ptr-distance属性值我们可以自定义下拉的触发距离。

...

2,下拉刷新相关事件

上面样例我们监听了下拉组件的刷新事件(refresh)。其实整个下拉过程中,各个步骤状态都有相应的事件。

Event

Target

Description

pullstart

Pull To Refresh content

开始下拉时触发

pullmove

Pull To Refresh content

下拉拖动时触发

pullend

Pull To Refresh content

松开后停止下拉时触发

refresh

Pull To Refresh content

进入“刷新”状态时触发

refreshdone

Pull To Refresh content

刷新完毕后触发,恢复原来状态 (在pullToRefreshDone方法执行后)

3,重置下拉刷新

前面样例中,我们数据刷新完毕后调用 myApp.pullToRefreshDone()方法重置页面上所有下拉组件,将它们恢复到初始状态。

我们也可以单独指定需要重置的对象。

myApp.pullToRefreshDone("#articles");

4,使用代码触发下拉刷新

我们也可以在 js 中使用代码来触发下拉刷新这个操作(触发后同样有下拉移动,进度条显示等效果)。

myApp.pullToRefreshTrigger('#articles');

5,启用/停用下拉刷新功能

//禁止下拉刷新功能

myApp.destroyPullToRefresh('#articles')

//重新启用下拉刷新功能

myApp.initPullToRefresh('#articles')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值