mui下拉加载 php,MUI进行APP混合开发实现下拉刷新和上拉加载 <font color=red>原创</font>...

首先,我们的环境是使用HBuilder通过MUI开发APP,这种混合开发适合安卓和苹果两个平台,本次我们给大家写的代码是把上拉加载和下拉刷新单独分离开,一起来学习下。

为实现下拉刷新功能,大多H5框架都是通过DIV模拟下拉回弹动画,在低端android手机上,DIV动画经常出现卡顿现象(特别是图文列表的情况); 通过双webview解决这个DIV的拖动流畅度问题;拖动时,拖动的不是div,而是一个完整的webview(子webview),回弹动画使用原生动画;在iOS平台,H5的动画已经比较流畅,故依然使用H5方案。两个平台实现虽有差异,但经过封装,可使用一套代码实现下拉刷新。

第一步: 创建子页面,因为拖动的其实是个子页面的整体

mui.init({

subpages:[{

url:pullrefresh-subpage-url,//下拉刷新内容页面地址

id:pullrefresh-subpage-id,//内容页面标志

styles:{ top:subpage-top-position,//内容页面顶部位置,需根据实际页面布局计算,若使用标准mui导航,顶部默认为48px; .....//其它参数定义

}

}]

});

第二步:内容页面需按照如下DOM结构构建

  • 1

第三步:通过mui.init方法中pullRefresh参数配置下拉刷新各项参数

mui.init({

pullRefresh : {

container:"#pullrefresh",//下拉刷新容器标识,querySelector能定位的css选择器均可,比如:id、.class等

down : {

contentdown : "下拉可以刷新",//可选,在下拉可刷新状态时,下拉刷新控件上显示的标题内容

contentover : "释放立即刷新",//可选,在释放可刷新状态时,下拉刷新控件上显示的标题内容

contentrefresh : "正在刷新...",//可选,正在刷新状态时,下拉刷新控件上显示的标题内容

callback : fn //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;

} }

});

第四步:设置执行函数

function fn() {

//业务逻辑代码,比如通过ajax从服务器获取新数据; ...... //注意,加载完新数据后,必须执行如下代码,注意:若为ajax请求,则需将如下代码放置在处理完ajax响应数据之后

mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //这行代码会隐藏掉 正在加载... 容器

}

以上就是关于下拉刷新的MUI写法以及相关的function 函数,下面来看看下拉加载:

第一步,第二步 和下拉刷新的一样

第三步:通过mui.init方法中pullRefresh参数配置下拉刷新各项参数

mui.init({

pullRefresh : {

container:"#pullrefresh",//待刷新区域标识,querySelector能定位的css选择器均可,比如:id、.class等

up : {

contentrefresh : "正在加载...",//可选,正在加载状态时,上拉加载控件上显示的标题内容

contentnomore:'没有更多数据了',//可选,请求完毕若没有更多数据时显示的提醒内容;

callback : fn //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;

}

}

});

第四步:设置执行函数

function fn() {

//业务逻辑代码,比如通过ajax从服务器获取新数据; ...... //注意,加载完新数据后,必须执行如下代码,true表示没有更多数据了,

两个注意事项: //1、若为ajax请求,则需将如下代码放置在处理完ajax响应数据之后 //

2、注意this的作用域,若存在匿名函数,需将this复制后使用

var _this = this;

_this.endPullupToRefresh(true|false);

}

上面就是上拉加载这个代码的详细写法以及函数。

本次我们分开给大家把下拉刷新和上拉加载都给大家分享了,如果有任何不明白了地方,可以在下面的留言地方留言讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
给下面代码补充一个样式:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>计时器</title> <link rel="preload" href="fonts/mui.ttf" as="font" crossorigin> <link rel="stylesheet" href="vendor/mui.min.css"> <link rel="stylesheet" href="vendor/waves.min.css"> <link rel="stylesheet" href="static/general-48e00d0585.css"> <link rel="shortcut icon" href="https:assets.retiehe.com/rth-legacy-icom-512.png"> <script src="static/theme-d5fe8b3fc6.js"></script> <meta name="theme-color" content="#ffffff"> </head> <body class="timer"> <div id="bg-img" class="bg-img"></div> <main> <div id="time" data-v-app> <div class="mui-input-row"> <input class="display" type="text"> </div> <div class="mui-input-row mui-input-range"> <label for="hour">时</label> <input id="minute" tpye="range" min="0" max="59"> </div> <div class="mui-input-row mui-input-rang"> <label for="second">秒</label> <input id="second" type="range" min="0" max="59"> </div> </div> <select> <option value="Countdown">倒计时</option> <option value="Stopwatch">秒表</option> <option value="CurrentTime">当前时间</option> </select> <button id="star-btn" type="button" class="mui-bin mui-btn-blue mui-btn-block waves-effect wave-light">开始</button> <button id="reset-btn" tpye="button" class="mui-btn mui-btn-block waves-effect waves-light">复位</button> </main> <script scr="static/i18n-36955081a6.js"></script> <script scr="static/general-e70b71a82f.js"></script> <script scr="https://static.retiehe.com/js/waves.min.js"></script> <script scr="static/timer-181c3930f6.js"></script> <script async scr="https://static.retiehe.com/js/wave.min.js"></script> <header class="mui-bar mui-bar-nav"> <div id="back-btn" class="mui-icon mui-icon-contact mui-pull-right" tabindex="0" role="button" aria-label="用户"></div> </header> <div class="mask" tabindex="0" aria-label="关闭弹窗" hidden></div> </body> </html>
最新发布
05-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值