HTML5技术

HTML5 极简的JS函数 - zxh91989(2)

字号+ 作者:H5之家 来源:H5之家 2017-12-07 12:10 我要评论( )

waiting表示系统等待框;mui框架在打开新页面时等待框的处理逻辑为:显示等待框--创建目标页面webview--目标页面loaded事件发生--关闭等待框;因此,只有当新页面为新创建页面(webview)时,会显示等待框,否则若

waiting表示系统等待框;mui框架在打开新页面时等待框的处理逻辑为:显示等待框-->创建目标页面webview-->目标页面loaded事件发生-->关闭等待框;因此,只有当新页面为新创建页面(webview)时,会显示等待框,否则若为预加载好的页面,则直接显示目标页面,不会显示等待框。waiting中的参数:autoShow表示自动显示等待框,默认为true,若为false,则不显示等待框;注意:若显示了等待框,但目标页面不自动显示,则需在目标页面中通过如下代码关闭等待框plus.nativeUI.closeWaiting();。title表示等待框上的提示文字,options表示等待框显示参数,比如宽高、背景色、提示文字颜色等,具体可参考。

示例1:Hello mui中,点击首页右上角的图标,会打开关于页面,实现代码如下:

//tap为mui封装的单击事件,可参考手势事件章节 document.getElementById('info').addEventListener('tap', function() { //打开关于页面 mui.openWindow({ url: 'examples/info.html', id:'info' }); });

因没有传入styles参数,故默认全屏显示;也没有传入show参数,故使用slide-in-right动画,新页面从右侧滑入。

示例2:从A页面打开B页面,B页面为一个需要从服务端加载的列表页面,若在B页面loaded事件发生时就将其显示出来,因服务器数据尚未加载完毕,列表页面为空,用户体验不好;可通过如下方式改善用户体验(最好的用户体验应该是通过的方式):第一步,B页面loaded事件发生后,不自动显示;

//A页面中打开B页面,设置show的autoShow为false,则B页面在其loaded事件发生后,不会自动显示; mui.openWindow({ url: 'B.html', show:{ autoShow:false } });

第二步,在B页面获取列表数据后,再关闭等待框、显示B页面

//B页面onload从服务器获取列表数据; window.onload = function(){ //从服务器获取数据 .... //业务数据获取完毕,并已插入当前页面DOM; //注意:若为ajax请求,则需将如下代码放在处理完ajax响应数据之后; mui.plusReady(function(){ //关闭等待框 plus.nativeUI.closeWaiting(); //显示当前页面 mui.currentWebview.show(); }); }

      

关闭页面

mui框架将窗口关闭功能封装在mui.back方法中,具体执行逻辑是:

  • 若当前webview为预加载页面,则hide当前webview;
  • 否则,close当前webview;
  • 在mui框架中,有三种操作会触发页面关闭(执行mui.back方法):

    hbuilder中敲mheader生成的代码块,会自动生成带有返回导航箭头的标题栏,点击返回箭头可关闭当前页面,原因就是因为该返回箭头包含.mui-action-back类,代码如下:

    <header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <h1 class="mui-title">标题</h1> </header>

    若希望在顶部导航栏之外的其它区域添加关闭页面的控件,只需要在对应控件上添加.mui-action-back类即可,如下为一个关闭按钮示例:

    <button type="button" class='mui-btn mui-btn-danger mui-action-back'>关闭</button>

    mui框架封装的页面右滑关闭功能,默认未启用,若要使用右滑关闭功能,需要在mui.init();方法中设置swipeBack参数,如下:

    mui.init({ swipeBack:true //启用右滑关闭功能 });

    mui框架默认会监听Android手机的back按键,然后执行页面关闭逻辑; 若不希望mui自动处理back按键,可通过如下方式关闭mui的back按键监听;

    mui.init({ keyEventBind: { backbutton: false //关闭back按键监听 } });

    除了如上三种操作外,也可以直接调用mui.back()方法,执行窗口关闭逻辑;

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • html5知识点:简析正则表达式 - 千千小助

      html5知识点:简析正则表达式 - 千千小助

      2017-12-02 08:02

    • html5知识点:CSS3新增选择器 - 千千小助

      html5知识点:CSS3新增选择器 - 千千小助

      2017-11-30 09:00

    • 推荐10个适合初学者的 HTML5 入门教程 - 赵一航

      推荐10个适合初学者的 HTML5 入门教程 - 赵一航

      2017-11-27 08:03

    • html5知识点:HTML5新特性 - 千千小助

      html5知识点:HTML5新特性 - 千千小助

      2017-11-24 18:00

    网友点评