mui跳转页面关闭侧导航

主页面带有menu按钮,点击侧滑页面出来,点击侧滑页面的<li>标签,跳转到新页面,点击新页面,menu关闭。

主页面代码:

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>Hello MUI</title>
<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="stylesheet" href="css/mui.min.css">
<link rel="stylesheet" href="css/mian.css" />
<style>
html,
body {
background-color: #efeff4;
}
p {
text-indent: 22px;
}
.mui-icon {

cursor: pointer;
}
/*#slider{
height: 300px;
}
.mui-slider-item{
height: 300px;
}
.mui-slider-item img{
height: 300px;
}*/
</style>
</head>

<body>
<header class="mui-bar mui-bar-nav">
<a class="mui-action-menu mui-icon mui-icon-bars mui-pull-left"></a>
<h1 class="mui-title"></h1>
<a href="setting.html" class="mui-icon-gear mui-icon mui-pull-right"></a>
</header>
<div class="mui-content">
</div>
</body>
<script src="js/mui.min.js"></script>
<script src="js/mui.enterfocus.js"></script>
<script src="js/app.js"></script>
<script src="js/jquery.min.js"></script>
<script>
//一些变量的定义,这是menu-move的一个动画,可以到官方demo查看其他动画
var main,menu, mask = mui.createMask(_closeMenu);
var showMenu = false,mode = ‘menu-move‘;
//ios手机
if (!mui.os.android) {
//整体滑动暂不支持android手机,因为两个页面的移动动画,无法保证同步性;
//document.getElementById("move-togger").classList.remove(‘mui-hidden‘);
var spans = document.querySelectorAll(‘.android-only‘);
for (var i=0,len=spans.length;i<len;i++) {
spans[i].style.display = "none";
}
}

mui.init({
swipeBack: false,
beforeback: back,
});

var aniShow = {};

function back() {
if (showMenu) {
//菜单处于显示状态,返回键应该先关闭菜单,阻止主窗口执行mui.back逻辑;
closeMenu();
return false;
} else {
//菜单处于隐藏状态,执行返回时,要先close菜单页面,然后继续执行mui.back逻辑关闭主窗口;
menu.close(‘none‘);
return true;
}
}
//plusReady事件后,自动创建menu窗口;
mui.plusReady(function() {
main = plus.webview.currentWebview();
//setTimeout的目的是等待窗体动画结束后,再执行create webview操作,避免资源竞争,导致窗口动画不流畅;
setTimeout(function () {
//侧滑菜单默认隐藏,这样可以节省内存;
menu = mui.preload({
id: ‘menu‘,
url: ‘menu.html‘,
styles: {
left: 0,
width: ‘70%‘,
zindex: 9997
}
});
},300);

});
/**
* 显示菜单菜单
*/
function openMenu() {
if (!showMenu) {
//alert(plus.storage.getItem(‘account‘));
//侧滑菜单处于隐藏状态,则立即显示出来;
//显示完毕后,根据不同动画效果移动窗体;
menu.show(‘none‘, 0, function() {
menu.setStyle({
left: ‘0%‘,
transition: {
duration: 150
}
});
});
//显示遮罩
mask.show();
showMenu = true;
}
}
/**
* 关闭侧滑菜单
*/
function closeMenu () {
_closeMenu();
//关闭遮罩
mask.close();
}
/**
* 关闭侧滑菜单(业务部分)
*/
function _closeMenu() {
if (showMenu) {
//关闭遮罩;

//主窗体开始侧滑;
menu.setStyle({
left: ‘-70%‘,
transition: {
duration: 150
}
});
//等窗体动画结束后,隐藏菜单webview,节省资源;
setTimeout(function() {
menu.hide();
}, 200);
//改变标志位
showMenu = false;
}
}
window.addEventListener("menu:close", closeMenu);
//变换侧滑动画移动效果;
mui(‘.mui-input-group‘).on(‘change‘, ‘input‘, function() {
if (this.checked) {
menu.setStyle({left:‘-70%‘,zindex:9999});
if(mode==‘all-move‘){
menu.setStyle({
left: ‘0%‘
});
}
mode = ‘menu-move‘;
}
});

//点击左上角图标,打开侧滑菜单;
document.querySelector(‘.mui-icon-bars‘).addEventListener(‘tap‘, openMenu);
//document.getElementById("show-btn").addEventListener(‘tap‘,openMenu);
//在android4.4中的swipe事件,需要preventDefault一下,否则触发不正常
//故,在dragleft,dragright中preventDefault
window.addEventListener(‘dragright‘, function(e) {
e.detail.gesture.preventDefault();
});
window.addEventListener(‘dragleft‘, function(e) {
e.detail.gesture.preventDefault();
});
//主界面向右滑动,若菜单未显示,则显示菜单;否则不做任何操作;
window.addEventListener("swiperight", openMenu);
//主界面向左滑动,若菜单已显示,则关闭菜单;否则,不做任何操作;
window.addEventListener("swipeleft", closeMenu);
//menu页面向左滑动,关闭菜单;
window.addEventListener("menu:swipeleft", closeMenu);-------------这是关键

//重写mui.menu方法,Android版本menu按键按下可自动打开、关闭侧滑菜单;
mui.menu = function() {
if (showMenu) {
closeMenu();
} else {
openMenu();
}
}

</script>
</html>

menu页面:

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>Hello MUI</title>
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">

<link rel="stylesheet" href="css/mui.min.css">
<style>
body, .mui-content {
background-color: #333;
color: #fff;
}
header.mui-bar{
display: none;
}
.mui-bar-nav~.mui-content{
padding: 0;

}
.title{
margin: 35px 15px 10px 25px;

}
#Aimg{
background-image: url(images/plug.png);
background-repeat:no-repeat;
background-size:20px 20px;

}
.title+.content{
margin: 10px 15px 35px;
color: #bbb;
text-indent: 1em;
font-size: 14px;
line-height: 24px;
}
.mui-table-view{
margin-bottom: 35px;
}
#lfoot{
background:#CCC;border-top:1px solid #000; padding:10px 0 30px 0; width:100%;
margin-left: 0px ;
margin-bottom: 0px;

}
#hfoot{

margin-left:0px ;
margin-bottom: 0px;
}
#footer{
margin-top: 100px;
margin-left: 15px;
margin-bottom: 0px;
}

</style>
</head>
<body>
<div class="mui-content">
<div id="Aimg">

<div class="title">智冷云控</div></div>
<div class="content">

<span class="android-only">
<!--<img src="images/plug.png"/>-->
</span>
<p style="margin: 10px 15px;">
<label id="close-btn" class="mui-btn mui-btn-danger mui-btn-block" style="padding: 5px 20px;"></label>
</p>

</div>
<div class="title1" style="margin-bottom: 25px;">系统</div>
<ul class="mui-table-view mui-table-view-chevron mui-table-view-inverted">
<li class="mui-table-view-cell" id="warnText">
<a href="waring.html" class="mui-navigate-right" >
信息
</a>
</li>
<li class="mui-table-view-cell">
<a class="mui-navigate-right" href="maps_map.html">
信息
</a>
</li>
<li class="mui-table-view-cell">
<a class="mui-navigate-right">
状态
</a>
</li>
<li class="mui-table-view-cell">
<a class="mui-navigate-right" href="historyPage_02.html">
湿度
</a>
</li>
<li class="mui-table-view-cell">
<a class="mui-navigate-right">
item
</a>
</li>
<li class="mui-table-view-cell">
<a class="mui-navigate-right" href="devicestatus.html">
item2
</a>
</li>
</ul>
</div>
<div id="footer">
</div>
<script src="js/mui.min.js"></script>
<script type="text/javascript" charset="utf-8">
var aniShow = "slide-in-right";
//关于backbutton和menubutton两个按键的说明,在iOS平台不存在,故需隐藏
if(!mui.os.android) {
var span = document.getElementById("android-only")
if(span) {
span.style.display = "none";
}
}
var subWebview = null,
template = null,
index = null;
mui.plusReady(function() {
//获得主页面webview引用;父页面
index = plus.webview.currentWebview().opener();
var _self = plus.webview.currentWebview();
_self.drag({
direction: "left",
moveMode: "followFinger"
}, {
view: index,
moveMode: "follow"
}, function(e) {});

})
mui(‘.mui-table-view‘).on(‘tap‘, ‘a‘, function() {
var id = this.getAttribute("href");
var type = this.getAttribute("open-type");
var href = this.href;

var webview_style = {
popGesture: "close"
}

var extras = {
};

var titleType = this.getAttribute("data-title-type");
//侧滑菜单需动态控制一下zindex值;
if(~id.indexOf(‘offcanvas-‘)) {
webview_style.zindex = 9998;
webview_style.popGesture = ~id.indexOf(‘offcanvas-with-right‘) ? "close" : "none";
}

var webview = plus.webview.create(this.href, id, webview_style, extras);
webview.addEventListener("loaded", function() {
webview.show(aniShow, 300);
});
//}
});

/**
* 关闭侧滑菜单
*/
function closeMenu () {
mui.fire(index,"menu:swipeleft");获得父页面的自定义事件
}
//优化显示出来的侧滑菜单,只需监听该菜单的左滑事件,然后将其关闭即可;在菜单上右滑,不做任何操作;
window.addEventListener("swipeleft",closeMenu);
mui(‘.mui-table-view‘).on(‘tap‘,‘.mui-table-view-cell‘,closeMenu);绑定关闭侧滑导航
mui.menu = closeMenu;
//点击“关闭侧滑菜单”按钮处理逻辑
//document.getElementById("close-btn").addEventListener("tap", close);
mui.init({
swipeBack: false,
keyEventBind: {
backbutton: false //关闭back按键监听
}
});
</script>
</body>

</html>

时间: 2024-11-05 21:48:39

mui跳转页面关闭侧导航的相关文章

MUI跳转页面传值

1.打开新的页面.通过 mui.openWindow 打开页面extras参数传递参数 1 mui.openWindow({ 2 id: "yingshou-" + newid, 3 url: "mobile/jingyan-info.html", 4 extras:{ 5 newid:newid 6 } 7 }) 2.接收参数 1 mui.init(); 2 mui.plusReady(function() { 3 var self = plus.webview.

ionic2 跳转子页面隐藏底部导航栏

在需要跳转页面的.ts文件中写入以下代码 引入App类 import { App } from 'ionic-angular'; 声明初始化app对象 constructor(private app:App) {} 从根页面跳转 this.app.getRootNav().push(nextPage);

解决TabActivity中子页面不通过导航跳转到另一个页面的问题

问题:当你的导航在TabActivity中 而子页面的一个按钮需要切换到其中的某一个导航页面 转载请注明出处:http://blog.csdn.net/x605940745 demo下载地址:http://download.csdn.net/detail/x605940745/7353695 package com.example.shows; import android.app.TabActivity; import android.content.BroadcastReceiver; im

解决TabActivity中子页面不通过导航跳转到还有一个页面的问题

问题:当你的导航在TabActivity中 而子页面的一个button须要切换到当中的某一个导航页面 转载请注明出处:http://blog.csdn.net/x605940745 demo下载地址:http://download.csdn.net/detail/x605940745/7353695 package com.example.shows; import android.app.TabActivity; import android.content.BroadcastReceiver

JS中用于打开、关闭、跳转页面的几个函数用法

window.open('url' , ' _self/_ blank):打开一个页面,属于window的函数 打开的页面对象.close():将打开的页面关闭 window.location.href = ' url ':跳到指定页面 window.history.back():回溯到上一个页面 window.history.go(参数):参数为正:跳到下几个页面:参数为负:跳到上几个页面 举个栗子: <html> <head> <meta charset="ut

基于HBuilder开发手机APP-主页/跳转页面/切换选项卡

  前  言 手机APP 前端语言的学习,顺带着学习制作手机APP,在这里跟大家分享一下,我的第一个手机APP,它的名字叫做你好,明天. 本APP是临摹手机上的QQ阅读制作,可以登录,查看小说一些简单的设计,由于刚接触许多东西需要慢慢的熟悉.完善,不足之处请各位见谅. 开篇 下载HBuilder在这里就不做太多阐述,直接进入主题. 1 建立新项目-手机APP 先来一个效果图镇楼: 当你新建完成之后会出现新的项目,创建的时候选择mui项目,里面会内带一些CSS与JS方便编写内容. 具体内容和主页如

在mui中遇到的内容覆盖导航栏的问题

一.问题描述: 公司项目中为了让内容以页面的形式显示,并要格式化页面内容,采用了百度的UEditor编辑器来显示内容,但是遇到了一个问题就是当下拉页面到一定距离之后,页面上方的导航栏会被内容遮盖. 二.解决办法: 将导航栏(mui头部)的z-index的值设置成大于内容区域(UE编辑器)的z-index.因为对z-index不是特别熟悉,应该说对滚动页面的实现不太熟悉,所以找问题原因的时候没有第一时间想到是这个问题.在调试器中看到UEditor编辑器的样式有个position:fixed,第一个

vue-router 跳转页面

使用 Vue.js 做项目的时候,一个页面是由多个组件构成的,所以在跳转页面的时候,并不适合用传统的 href,于是 vue-router 应运而生. 官方文档: https://router.vuejs.org/zh-cn/essentials/getting-started.html 有很多朋友找我要 demo,但是博客中的这个案例被我删掉了,我只好随手写了一个超简单的 demo,希望能有所帮助 链接:http://pan.baidu.com/s/1nvqfA1V 密码:79bv 这次的实例

【2017-05-21】WebForm跨页面传值取值、C#服务端跳转页面、 Button的OnClientClick属性、Js中getAttribute和超链接点击弹出警示框。

一.跨页面传值和取值: 1.QueryString - url传值,地址传值 优缺点:不占用服务器内存:保密性差,传递长度有限. 通过跳转页面路径进行传值,方式: href="地址?key=value&key=value"            用&可以实现传递多个值. 通过这种方式就把要传递的值传到要跳转的页面去了. 2.跨页面取值: 在跳转到的页面的C#代码服务端进行取值 用:  string value = Request["key"]; 二.