沸点太高
沸点太高
  • 发布:2016-07-05 12:23
  • 更新:2016-07-06 17:31
  • 阅读:1939

tab webview方式,键盘弹出时有异常

分类:MUI

用tab webview来做了一个资讯页面,在点击搜索框输入弹出键盘的时候,会在软键盘上面出现一个莫名其妙的白条,不知道是哪里出现了问题。如何能将底部tabbar固定在底部,且弹出键盘是不会有异常?代码如下:

<!DOCTYPE html>  
<html>  

    <head>  
        <meta charset="utf-8">  
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  
        <title></title>  
        <script src="js/mui.min.js"></script>  
        <link href="css/mui.min.css" rel="stylesheet" />  
        <link rel="stylesheet" type="text/css" href="css/iconfont.css"/>  

    </head>  

    <body>  
        <!--tab-webview-->  
        <nav class="mui-bar mui-bar-tab" id="bottomx" >   
            <a id="defaultTab" class="mui-tab-item mui-active" href="main.html">  
                <span class="mui-icon iconfont icon-home"></span>  
                <span class="mui-tab-label">首页</span>  
            </a>  
            <a class="mui-tab-item" href="shop.html">  
                <span class="mui-icon iconfont icon-shangcheng1"></span>  
                <span class="mui-tab-label">商城</span>  
            </a>  
            <a class="mui-tab-item" href="desire.html">  
                <span class="mui-icon iconfont icon-dingzhi"></span>  
                <span class="mui-tab-label">榜单</span>  
            </a>  
            <a class="mui-tab-item" href="msg.html">  
                <span class="mui-icon iconfont icon-message"><span class="mui-badge">9</span></span>  
                <span class="mui-tab-label">消息</span>  
            </a>  
            <a class="mui-tab-item" href="setting.html">  
                <span class="mui-icon iconfont icon-iconfontwohover"></span>  
                <span class="mui-tab-label">我</span>  
            </a>  
        </nav>  

        <script type="text/javascript" charset="utf-8">  
            mui.init();  
            var aniShow = {};  
             //只有ios支持的功能需要在Android平台隐藏;  
            if (mui.os.android) {  
                var list = document.querySelectorAll('.ios-only');  
                if (list) {  
                    for (var i = 0; i < list.length; i++) {  
                        list[i].style.display = 'none';  
                    }  
                }  
                //Android平台暂时使用slide-in-right动画  
                if(parseFloat(mui.os.version)<4.4){  
                    aniShow = "slide-in-right";  
                }  
            }  
            // 指定选项卡文件  
            var subpages = ['main.html', 'shop.html', 'desire.html', 'msg.html', 'setting.html'];  
            var subpage_style = {  
                top: '0px',  
                bottom: '51px'  
            };  
            mui.plusReady(function(){  
                // 首次启动时使用引导页  
                //读取本地存储,检查是否为首次启动  
                var showGuide = plus.storage.getItem("lauchFlag");  
                //有值,说明已经显示过了,无需显示;                   
                if(showGuide){  
                    //关闭splash页面;  
                    plus.navigator.closeSplashscreen();  
                    plus.navigator.setFullscreen(false);  
                }else{  
                    //显示启动导航      
                    mui.openWindow({  
                        id:'guide',  
                        url:'./guide.html',  
                        show:{  
                            aniShow:'none'  
                        },  
                        waiting:{  
                            autoShow:true  
                        }  
                    });  
                }  
                /**********************************************/  
                // tabbar设置绝对位置:  
                document.getElementById('bottomx').style.top = (plus.display.resolutionHeight - 50) + "px";  
                // webview跳转代码  
                var self = plus.webview.currentWebview();  
                for (var i = 0; i < 5; i++) {  
                    var temp = {};  
                    var sub = plus.webview.create(subpages[i], subpages[i], subpage_style);  
                    if (i > 0) {  
                        sub.hide();  
                    }else{  
                        temp[subpages[i]] = "true";  
                        mui.extend(aniShow,temp);  
                    }  
                    self.append(sub);  
                }  
            });  
            //当前激活选项  
            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');  
                }  
            });  
        </script>  
    </body>  

</html>
2016-07-05 12:23 负责人:无 分享
已邀请:
西西里

西西里

你的意思是 点击文本框的时候 把“nav” 隐藏是吧,隐藏了你的底布bottom还在,当然有白条了,对于这种子父webview的你可以直接把你文本框所在的子级webview的bottom设成0,直接就盖住了,在你需要的时候在设回来。

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