[MUI框架]-滑动侧边栏-webview模式
2016-04-06 18:08
585 查看
MUI 官网:http://dev.dcloud.net.cn/mui/
使用前准备,先下载HBuilder:http://www.dcloud.io/,然后新建移动APP里面的mui项目,则会自动生成所需的css文件和js文件。
使用前准备,先下载HBuilder:http://www.dcloud.io/,然后新建移动APP里面的mui项目,则会自动生成所需的css文件和js文件。
第一步:引入必要的文件
引入css以及js:<link href="css/mui.min.css" rel="stylesheet"/> <script src="js/mui.min.js"></script>
第二步:写出必要的结构
<header class="mui-bar mui-bar-nav"> <a class="mui-action-menu mui-icon mui-icon-bars mui-pull-right"></a> <h1 class="mui-title">off canvas(侧滑导航)</h1> </header> <div class="mui-content"> <div class="mui-content-padded"> <p>这是webview模式右滑导航示例,主页面和菜单在不同的webview中, 优点是支持菜单内容在多页面的复用,缺点是不支持拖动手势(跟手); 当前页面为主界面,你可以在主界面放置任何内容; </p> <p style="padding: 5px 20px;margin-bottom: 5px;"> <button id="show-btn" type="button" class="mui-btn mui-btn-primary mui-btn-block" style="padding: 10px;">显示侧滑菜单</button> </p> </div> </div>
第三步:写上必要的启动js
<script> //生成2个对象分别控制主窗口和菜单窗口; var menu = null,main = null; var showMenu = false; var isInTransition = false; //开始预加载菜单页; mui.plusReady(function() { main = plus.webview.currentWebview(); main.addEventListener('maskClick', closeMenu); //处理侧滑导航,为了避免和子页面初始化等竞争资源,延迟加载侧滑页面; setTimeout(function() { menu = mui.preload({ id: 'sidemenu', url: 'sidemenu.html', styles: { left: 0, width: '70%', zindex: -1 } }); }, 200); }); //打开侧滑窗口; function openMenu() { if (isInTransition) { return; } if (!showMenu) { //侧滑菜单处于隐藏状态,则立即显示出来; isInTransition = true; menu.setStyle({ mask: 'rgba(0,0,0,0)' }); //menu设置透明遮罩防止点击 menu.show('none', 0, function() { //主窗体开始侧滑并显示遮罩 main.setStyle({ mask: 'rgba(0,0,0,0.4)', left: '70%', transition: { duration: 200 } }); mui.later(function() { isInTransition = false; menu.setStyle({ mask: "none" }); //移除menu的mask }, 200); showMenu = true; }); } }; //关闭侧滑窗口; function closeMenu() { if (isInTransition) { return; } if (showMenu) { //关闭遮罩; //主窗体开始侧滑; isInTransition = true; main.setStyle({ mask: 'none', left: '0', transition: { duration: 200 } }); showMenu = false; //等动画结束后,隐藏菜单webview,节省资源; mui.later(function() { isInTransition = false; menu.hide(); }, 200); } }; //点击头部菜单小图标,打开侧滑菜单; document.querySelector('.mui-icon-bars').addEventListener('tap', openMenu); //点击自定义按钮,打开侧滑菜单; document.querySelector('#show-btn').addEventListener('tap', openMenu); //menu页面点击后关闭菜单; window.addEventListener("menu:tap", closeMenu); </script>
相关文章推荐
- Android 发送广播更加方便快捷高效的方式
- In App Purchase(应用内购)
- swift学习笔记
- Android 项目更改包名的方法
- 四则运算(Android)版
- android基础学习之通知
- Android键盘切换闪动原理及解决方案
- 四则运算(Android)版
- 怎么解决Android studio导入项目卡死
- Object-c 归档--源自技术
- ios开发——仿新版iBooks书本打开与关闭动画
- android 一些问题
- Android FMRadio的个人看法
- 三星手机的坑
- 把App打包成ipa文件,然后App上架流程[利用Application Loader]
- Android Studio添加so文件
- 用objective-c 实现常用算法(冒泡、选择、快速、插入)
- iOS通过SocketRocket实现websocket的即时聊天
- Android开发之Fragment
- Android录制音频的三种方式