星空蓝
星空蓝
  • 发布:2017-08-13 23:31
  • 更新:2017-08-13 23:31
  • 阅读:2329

求助急-MUI手势监听不执行,具体代码请看描述

分类:MUI

我现在有个用webview的 界面 然后加了一个侧滑菜单 但是像左滑不出侧滑菜单 按钮监听已经实现可以打开了
我已经加入监听了 【这句话代码在我贴出的代码最后面】
 //主界面向右滑动,若菜单未显示,则显示菜单;否则不做任何操作;
        window.addEventListener("swiperight", openMenu); 
         //主界面向左滑动,若菜单已显示,则关闭菜单;否则,不做任何操作;
        window.addEventListener("swipeleft", closeMenu);

         //menu页面向左滑动,关闭菜单;
        window.addEventListener("menu:swipeleft", closeMenu);

<!--script脚本start-->  
    <script src="js/mui.min.js"></script>  
    <script type="text/javascript" charset="utf-8">  
        //mui初始化  

        mui.init({  
            swipeBack: false,//  
            beforeback: back//  

        });  

        //声明数组存入四个界面  
        var subpages = ['main.html', 'seat.html', 'share.html', 'own.html'];  
            var subpage_style = {  

                top: '50px',  
                bottom: '51px'  
            };  
        var aniShow = {};  

            //创建子页面,首个选项卡页面显示,其它均隐藏;  
            mui.plusReady(function() {  
                //获取当前窗口的WebviewObject对象  
                var self = plus.webview.currentWebview();  
                //使用数组遍历  
                for (var i = 0; i < 4; i++) {  
                    var temp = {};  
                    //creat()创建webview的方法 参数url id 样式  
                    var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);  

                    if (i > 0) {  
                        //下标0开始,如果大于0全部隐藏,非首页全部隐藏  
                        sub.hide();  
                    }else{  
                        temp[subpages[i]] = "true";  
                        mui.extend(aniShow,temp);  
                    }  
                    self.append(sub);  
                }  
            //侧滑,自动创建menu窗口;  
            main = plus.webview.currentWebview();  
            //setTimeout的目的是等待窗体动画结束后,再执行create webview操作,避免资源竞争,导致窗口动画不流畅;  
            setTimeout(function () {  

                //侧滑菜单默认隐藏,这样可以节省内存;  
                menu = mui.preload({  

                    id: 'offcanvas-drag-right-plus-menu',  
                    url: 'offcanvas-drag-right-plus-menu.html',  
                    styles: {  
                        left: 0,  
                        width: '70%',  
                        zindex: 9997  
                    }  
                });  

            },300);  

            });  
             //当前激活页面  
            var activeTab = subpages[0];  
            var title = document.getElementById("title");  
             //选项卡点击事件  
            mui('.mui-bar-tab').on('tap', 'a', function(e) {  
                var targetTab = this.getAttribute('href');  

                if (targetTab == activeTab) {  
                    return;  
                }  

                //更换标题  

                title.innerHTML = this.querySelector('.mui-tab-label').innerHTML;  

                //显示目标选项卡  
                //若为iOS平台或非首次显示,则直接显示  
                if(mui.os.ios||aniShow[targetTab]){  

                    plus.webview.show(targetTab);  
                }else{  
                    //否则,使用fade-in动画,且保存变量  
                    var temp = {};  
                    temp[targetTab] = "true";  
                    mui.extend(aniShow,temp);  
                    plus.webview.show(targetTab,"fade-in",300);  
                }  
                //隐藏当前;  
                plus.webview.hide(activeTab);  
                //更改当前活跃的选项卡  
                activeTab = targetTab;  
            });  
             //自定义事件,模拟点击“首页选项卡”  
            document.addEventListener('gohome', function() {  
                var defaultTab = document.getElementById("defaultTab");  
                //模拟首页点击  
                mui.trigger(defaultTab, 'tap');  
                //切换选项卡高亮  
                var current = document.querySelector(".mui-bar-tab>.mui-tab-item.mui-active");  
                if (defaultTab !== current) {  
                    current.classList.remove('mui-active');  
                    defaultTab.classList.add('mui-active');  
                }  
            });  

//侧滑菜单  
        var main,menu, mask = mui.createMask(_closeMenu);//创建蒙版  
        var showMenu = false,mode = 'main-move';  

        function back() {  
            if (showMenu) {  
                //菜单处于显示状态,返回键应该先关闭菜单,阻止主窗口执行mui.back逻辑;  
                closeMenu();  
                return false;  
            } else {  
                //菜单处于隐藏状态,执行返回时,要先close菜单页面,然后继续执行mui.back逻辑关闭主窗口;  
                menu.close('none');  
                return true;  
            }  
        }  
        /**  
         * 显示菜单  
         */  
        function openMenu() {  

            if (!showMenu) {  
                //侧滑菜单处于隐藏状态,则立即显示出来;  
                //显示完毕后,根据不同动画效果移动窗体;  

                menu.show('none', 0, function() {  

                    switch (mode){   //mode为全局变量  
                        case 'main-move':  
                            //主窗体开始侧滑;  
                            main.setStyle({  
                                left: '70%',  
                                transition: {  
                                    duration: 150  
                                }  
                            });  
                            break;  
                        case 'menu-move':  
                            menu.setStyle({  
                                left: '0%',  
                                transition: {  
                                    duration: 150  
                                }  
                            });  
                            break;  
                        case 'all-move':  
                            main.setStyle({  
                                left: '70%',  
                                transition: {  
                                    duration: 150  
                                }  
                            });  
                            menu.setStyle({  
                                left: '0%',  
                                transition: {  
                                    duration: 150  
                                }  
                            });  
                            break;  
                    }  
                });  
                //显示遮罩  
                mask.show();  
                showMenu = true;  
            }  
        }  

        /**  
         * 关闭侧滑菜单  
         */  
        function closeMenu () {  
            _closeMenu();  
            //关闭遮罩  
            mask.close();  
        }  

        /**  
         * 关闭侧滑菜单(业务部分)  
         */  
        function _closeMenu() {  

            if (showMenu) {  
                //关闭遮罩;  
                switch (mode){  
                    case 'main-move':  
                        //主窗体开始侧滑;  
                        main.setStyle({  

                            left: '0',  
                            transition: {  
                                duration: 150  
                            }  
                        });  
                        break;  
                    case 'menu-move':  
                        //主窗体开始侧滑;  
                        menu.setStyle({  
                            left: '-70%',  
                            transition: {  
                                duration: 150  
                            }  
                        });  
                        break;  
                    case 'all-move':  
                        //主窗体开始侧滑;  
                        main.setStyle({  
                            left: '0',  
                            transition: {  
                                duration: 150  
                            }  
                        });  
                        //menu页面同时移动  
                        menu.setStyle({  
                            left: '-70%',  
                            transition: {  
                                duration: 150  
                            }  
                        });  

                        break;  
                }  

                //等窗体动画结束后,隐藏菜单webview,节省资源;  
                setTimeout(function() {  
                    menu.hide();  
                }, 200);  
                //改变标志位  
                showMenu = false;  
            }  
        }  

         //点击左上角图标,打开侧滑菜单;  
        //document.querySelector('.mui-icon-bars').addEventListener('tap', openMenu);  
        document.getElementById("menu").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 = function() {  
            if (showMenu) {  
                closeMenu();  
            } else {  
                openMenu();  
            }  
        }  

</script>
2017-08-13 23:31 负责人:无 分享
已邀请:

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