mui开发webapp(1)

mui开发注意事项

Mui HTML5开发框架

mui是一个高性能的HTML5开发框架,从UI到效率,都在极力追求原生体验;这个框架自身有一些规则,刚接触的同学不很熟悉,特总结本文;想了解mui更详细的信息,请访问mui官网。

DOM结构

关于mui页面的dom,你需要知道如下规则:

固定栏靠前

所谓的固定栏,也就是带有.mui-bar(类选择器)属性的节点,都是基于fixed定位的元素;常见组件包括:顶部导航栏(.mui-bar-nav)、底部工具条(.mui-bar-footer)、底部选项卡(.mui-bar-tab);这些元素使用时需遵循一个规则:放在mui-content元素之前,即使是底部工具条和底部选项卡,也要放在.mui-content之前,否则固定栏会遮住部分主内容;

### 一切内容都要包裹在mui-content中

除了固定栏之外,其它内容都要包裹在.mui-content中,否则就有可能被固定栏遮罩,原因:固定栏基于Fixed定位,不受流式布局限制,普通内容依然会从top:0的位置开始布局,这样就会被固定栏遮罩,mui为了解决这个问题,定义了如下css代码:

.mui-bar-nav ~ .mui-content {

padding-top: 44px;

}

.mui-bar-footer ~ .mui-content {

padding-bottom: 44px;

}

.mui-bar-tab ~ .mui-content {

padding-bottom: 50px;

}

你当然可以通过自定义CSS的方式实现如上类似效果,但为了使用简便,

建议将除固定栏之外的所有内容,全部放在.mui-content中。

始终为button按钮添加type属性

若button按钮没有type属性,浏览器默认按照type=submit逻辑处理,这样若将没有type的button放在form表单中,点击按钮就会执行form表单提交,页面就会刷新,用户体验极差。

窗口管理

页面初始化:必须执行mui.init方法

mui在页面初始化时,初始化了很多参数配置,比如:按键监听、手势监听等,因此mui页面都必须调用一次mui.init()方法;

页面跳转:抛弃href跳转

当浏览器加载一个新页面时,若页面DOM尚未渲染完毕,页面会先显示空白,然后等DOM渲染完毕后,再显示具体内容,这是WEB浏览器技术无法逾越的体验障碍;为解决这个问题,建议使用

[mui.openWindow方法](http://dcloudio.github.io/mui/javascript/#openwindow)打开一个新的webview,mui会自动监听新页面的loaded事件,若加载完毕,再自动显示新页面;扩展阅读:

hello mui中的无等待窗体切换是如何实现的

提示HTML5的性能体验系列之一 避免切页白屏

页面关闭:勿重复监听backbutton

mui框架自动封装了页面关闭逻辑,若希望自定义返回逻辑(例如编辑页面的返回,需用户确认放弃草稿后再执行返回逻辑),则需要重写mui.back方法,切勿简单通过addEventListener添加backbutton监听,因为addEventListener只会增加新的执行程序,mui默认封装的监听执行逻辑依然会继续执行,因此若仅addEventListener添加用户确认框,则用户即使选择了取消,也会继续关闭窗口。

手势操作

点击:忘记click

快速响应是mobile App实现的重中之重,研究表明,当延迟超过100毫秒,用户就能感受到界面的卡顿,然而手机浏览器的click点击存在300毫秒延迟(至于为何会延迟,及300毫秒的来龙去脉,请自行谷百),mui为了解决这个问题,封装了tap事件,因此在任何点击的时候,请忘记click及onclick操作,统统使用如下代码:

element.addEventListener(‘tap‘,function(){

//点击响应逻辑

});

时间: 2024-10-06 01:39:32

mui开发webapp(1)的相关文章

我的第一个phonegap开发WebApp的demo 怎么搭建安卓开发环境以及安装phonegap

一.先来张图,赏心悦目观赏一下,哈 . 这个就是使用phonegap框架搭建起来的,运行在安卓环境上的第一个demo. 安卓的开发环境,大家都会搭建了,所以不赘述.讲一下,安装phonegap的步骤. 二.phonegap的安装   1. 设置系统变量系统变量 Path后面添加:(以下变量都是必须的,路径根据自己的设置)E:\android_sdk\sdk\tools;E:\android_sdk\sdk\platform-tools;E:\android_sdk\eclipse\plugins

mui开发app之js将base64转图片文件

之前我已经做过一个利用cropper裁剪并且制作头像的功能.如何在mui app中实现相册或相机获取图片后裁剪做头像请看另一篇博客:mui开发app之cropper裁剪后上传头像的实现 但是当时裁剪后图片是保存为base64格式的,这是h5 canvas建议使用的图片传输方式. 很多时候很多api,比如mui中第三方插件map中有一个setIcon传入的必须是本地的图片文件地址,目前的第三方地图系统任然不支持base64的标注图,所以折腾了一晚之后终于在native.js中找到了将base64转

利用 MUI开发app, 如何实现侧滑菜单及其主体部分上下滑动

 利用mui开发APP 之侧滑菜单主内容滚动问题 MUI作为开发者常用的框架之一,其号称最接近原生APP体验的高性能前端框架.因此利用mui开发移动APP,可以为开发者提供很大的便利和接近原生的体验.但是,在实现一些复杂功能的过程中,难免遇到一些小问题.博主将以自己在项目开发中的一些的经验,陆续对mui使用中容易遇到的小问题,予以解答和分享,希望能帮到更多的开发者朋友. 最近,博主在项目开发过程中遇到这样一个问题,即利用mui侧滑菜单模块,实现APP的侧滑菜单效果时,侧滑菜单加入以后,将影响自身

mui开发app之webview是什么

WebView(网络视图)能加载显示网页,可以将其视为一个浏览器. 当我们使用mui开发html5+app的时候,其实是调用了设备的webkit内核,即对浏览器的调用,浏览器再实现了设备接口对设备进行操作,目前实现的html5+可以调用摄像,录音,gps等这些更底层的东西,当然是针对移动设备浏览器内核而言的 我们甚至能使用iostream,关于文件流的应用,是实现在浏览器提供的沙盒目录中, 目前5+为了保证应用的安全,plus.io API限制了仅可访问应用沙盒的4个公开目录_www(只读)._

我用VS2015 开发webapp (1) 需求、目的、配置

分析需求: 1.要求数据分析 [门店销售数据分析] 2.数据要实时同步 3.数据要求安全并保密 4.数据分析图 开发工具的选择: VS2015 + Cordova + Angularjs + Ionic 配置环境 CMD-- node -v CMD-- npm -version 解决方法: 点击"Packages" > "Show Obsolete Packages"然后library就出来了 下面碎碎念: MD,我真不会啊.... 24K纯新手,这是多大坑啊

使用vue开发webApp,安卓手机自带回退键的问题解决

首先,我先为大家说明,为什么我要写这篇随笔: 因为我们写的webapp,在安卓手机上,按一次回退键,就会退出app,回到桌面,而不是像原生app一样,会有一个提示,例如,"再按一次退出应用"的这种提示, 按一次退回键就回到桌面,这明显不是我们想要的,废话到此为止,下面上代码: mui.init({ keyEventBind: { backbutton: true //关闭back按键监听 } }); // //首页返回键处理 // //处理逻辑:1秒内,连续两次按返回键,则退出应用:

mui开发app之联网应用传输数据

手机的app分为,在线和单机,在线就是类似于C/S模式,能与服务器与他人共享数据的程序,单机就是在没有网络下可以玩转的app. 目前互联网盛行的时代,99%的程序都是联网环境下工作的.那么如何开发本地app并且能通过网络将数据上传至服务器共享成为了在线app的开发重点. 首先请理解B/S的工作模式,在web程序中,我们只是向http服务器请求了地址,服务器(无论是apache,tomcat,nginx这些都是实现了http socket的程序)返回给我们html文件,浏览器呢,对html进行解释

在Eclipse开发Webapp部署过程中,缓存的位置设置

引言: 在Eclipse中进行Web开发,一般都会将项目直接在Eclipse中集成的Tomcat进行开发.那Webapp部署到哪里了呢?缓存的位置能否切换呢? 1.  查看当前Webapp项目缓存位置 点击Tomcat服务器,就可以进入Server Overviews的界面了.注意: 如果当前Tomcat下有webapps应用,则无法进行编辑ServerLocations. 2.  如何进行Server Locations(项目缓存位置的设置)的切换? 清除当前Tomcat服务器下的Webapp

mui开发app之plusReady

在mui中使用$.plusReady()或者mui.plusReady()使用 类似于jquery中的$(document).ready(); 第一,啥是plusReady? 在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5+的api,建议都写在mui.plusReady方法中. 第二,啥是html5+,和html5有什么区别 所谓的html4.0标准我们就不去讨论了,这是早