夏小杰
夏小杰
  • 发布:2015-11-04 00:32
  • 更新:2015-11-04 00:39
  • 阅读:3605

设置了侧滑返回首页后再次点击策划按钮 无效

分类:MUI
<div class="title" style="margin-bottom: 25px;">mui典型控件</div>  
            <ul class="mui-table-view mui-table-view-chevron mui-table-view-inverted" style="color: #ddd;">  
                <li class="mui-table-view-cell">  
                    <a class="mui-navigate-right" open-type="common" href="index.html">  
                        首页  
                    </a>  
                </li>
<!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">  
    </head>  

    <body>  
        <header class="mui-bar mui-bar-nav">  
            <a class="mui-icon mui-icon-bars mui-pull-left"></a>  
            <a id="info" class="mui-icon mui-icon-info-filled mui-pull-right" style="color: #999;"></a>  
            <h1 class="mui-title">Hello mui</h1>  
        </header>  
        <script src="js/mui.min.js"></script>  
        <script src="js/update.js" type="text/javascript" charset="utf-8"></script>  
        <script>  
            var menu = null,  
                main = null;  
            var showMenu = false;  
            mui.init({  
                swipeBack: false,  
                statusBarBackground: '#f7f7f7',  
                gestureConfig: {  
                    doubletap: true  
                },  
                subpages: [{  
                    id: 'list',  
                    url: 'list.html',  
                    styles: {  
                        top: '45px',  
                        bottom: 0,  
                        bounce: 'vertical'  
                    }  
                }]  
            });  
            mui.plusReady(function() {  
                //仅支持竖屏显示  
                plus.screen.lockOrientation("portrait-primary");  
                main = plus.webview.currentWebview();  
                main.addEventListener('maskClick', closeMenu);  
                //处理侧滑导航,为了避免和子页面初始化等竞争资源,延迟加载侧滑页面;  
                setTimeout(function() {  
                    menu = mui.preload({  
                        id: 'index-menu',  
                        url: 'index-menu.html',  
                        styles: {  
                            left: 0,  
                            width: '70%',  
                            zindex: -1  
                        },  
                        show: {  
                            aniShow: 'none'  
                        }  
                    });  
                }, 200);  
            });  
            var isInTransition = false;  
            /**  
             * 显示侧滑菜单  
             */  
            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: 150  
                            }  
                        });  
                        mui.later(function() {  
                            isInTransition = false;  
                            menu.setStyle({  
                                mask: "none"  
                            }); //移除menu的mask  
                        }, 160);  
                        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();  
                    }, 300);  
                }  
            };  
             //点击左上角侧滑图标,打开侧滑菜单;  
            document.querySelector('.mui-icon-bars').addEventListener('tap', function(e) {  
                if (showMenu) {  
                    closeMenu();  
                } else {  
                    openMenu();  
                }  
            });  
             //敲击顶部导航,内容区回到顶部  
            document.querySelector('header').addEventListener('doubletap', function() {  
                main.children()[0].evalJS('mui.scrollTo(0, 100)');  
            });  
             //主界面向右滑动,若菜单未显示,则显示菜单;否则不做任何操作  
            window.addEventListener("swiperight", openMenu);  
             //主界面向左滑动,若菜单已显示,则关闭菜单;否则,不做任何操作;  
            window.addEventListener("swipeleft", closeMenu);  
             //侧滑菜单触发关闭菜单命令  
            window.addEventListener("menu:close", closeMenu);  
            window.addEventListener("menu:open", openMenu);  
             //重写mui.menu方法,Android版本menu按键按下可自动打开、关闭侧滑菜单;  
            mui.menu = function() {  
                    if (showMenu) {  
                        closeMenu();  
                    } else {  
                        openMenu();  
                    }  
                }  
                //处理右上角关于图标的点击事件;  
            var subWebview = null,  
                template = null;  
            document.getElementById('info').addEventListener('tap', function() {  
                if (subWebview == null) {  
                    //获取共用父窗体  
                    template = plus.webview.getWebviewById("default-main");  
                }  
                if (template) {  
                    subWebview = template.children()[0];  
                    subWebview.loadURL('examples/info.html');  
                    //修改共用父模板的标题  
                    mui.fire(template, 'updateHeader', {  
                        title: '关于',  
                        showMenu: false  
                    });  
                    template.show('slide-in-right', 150);  
                }  
            });  
             //首页返回键处理  
             //处理逻辑:1秒内,连续两次按返回键,则退出应用;  
            var first = null;  
            mui.back = function() {  
                if (showMenu) {  
                    closeMenu();  
                } else {  
                    //首次按键,提示‘再按一次退出应用’  
                    if (!first) {  
                        first = new Date().getTime();  
                        mui.toast('再按一次退出应用');  
                        setTimeout(function() {  
                            first = null;  
                        }, 1000);  
                    } else {  
                        if (new Date().getTime() - first < 1000) {  
                            plus.runtime.quit();  
                        }  
                    }  
                }  
            };  
        </script>  
    </body>  

</html>

下图 第一次点击左上角侧滑按钮后进入侧滑菜单,点击首页后进入首页

进入首页后再次点击左上角的侧滑菜单按钮就没有反应了 求大神们给小白点拨下 最好能直接放个代码出来

2015-11-04 00:32 负责人:无 分享
已邀请:
DCloud_UNI_CHB

DCloud_UNI_CHB

修改你的侧滑菜单页面中的点击代码,若发现是“首页”,直接调用关闭侧滑菜单函数即可;

  • 夏小杰 (作者)

    囧 比较笨 大神能否给个代码

    2015-11-04 00:40

  • 夏小杰 (作者)

    <body>  
    <div class="mui-content">
    <div class="title">侧滑导航</div>
    <div class="content">
    这是首页侧滑导航示例,你可以在这里放置任何内容;关闭侧滑菜单有多种方式:
    1.点击本侧滑菜单页之外的任意位置;
    2.点击如下红色按钮<span id="android-only">;3.Android手机按back键;4.Android手机按menu键
    </span>。
    <p style="margin: 10px 15px;">
    <button id="close-btn" type="button" class="mui-btn mui-btn-danger mui-btn-block" style="padding: 5px 20px;">关闭侧滑菜单</button>
    </p>

    </div>
    <div class="title" style="margin-bottom: 25px;">mui典型控件</div>
    <ul class="mui-table-view mui-table-view-chevron mui-table-view-inverted" style="color: #ddd;">
    <li class="mui-table-view-cell">
    <a class="mui-navigate-right" open-type="common" href="index.html">
    首页
    </a>
    </li>
    <li class="mui-table-view-cell">
    <a class="mui-navigate-right" open-type="common" href="examples/pullrefresh_main.html">
    下拉刷新
    </a>
    </li>

    2015-11-04 00:41

该问题目前已经被锁定, 无法添加新回复