民仔
民仔
  • 发布:2016-01-20 14:59
  • 更新:2016-01-20 17:19
  • 阅读:1507

侧滑菜单栏 闪烁

分类:MUI

今天我在实现侧滑菜单栏的时候,弹出遮罩层时闪烁了一下,求大神帮忙解释一下,本人小白,刚开始学习mui,在仿照hello mui的时候遇见的问题,代码如下:

var showMenu = false;  
        var isInTransition = false;  
        /**  
         * 显示侧滑菜单  
         */  
        function openMenu() {  
            if (isInTransition) {  
                return;  
            }  
            if (!showMenu) {  
                //侧滑菜单处于隐藏状态,则立即显示出来;  
                isInTransition = true;  
                menu.setStyle({  
                    mask: 'rgba(0,0,0,0.3)'  
                });  
                menu.show('none', 0, function() {  
                    //主窗体开始侧滑并显示遮罩  
                    main.setStyle({  
                        mask: 'rgba(0,0,0,0.4)',  
                        right: '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',  
                    right: '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();  
            }  
        });  
        //主界面向左滑动,若菜单未显示,则显示菜单;否则不做任何操作  
        window.addEventListener("swipeleft", openMenu);  
        //主界面向右滑动,若菜单已显示,则关闭菜单;否则,不做任何操作;  
        window.addEventListener("swiperight", closeMenu);  

        mui.menu = function() {  
            if (showMenu) {  
                closeMenu();  
            } else {  
                openMenu();  
            }  
        }  
2016-01-20 14:59 负责人:无 分享
已邀请:
民仔

民仔 (作者)

解决问题了,原因是我把menu的z-index改成100以后,顺序出了问题,这里不能移动主界面,而应该是主界面不动,菜单界面移动

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