stock2
stock2
  • 发布:2015-04-09 17:01
  • 更新:2015-04-15 09:52
  • 阅读:3088

点击输入时,输入框把下面的菜单顶起来了.如何解决啊,谢谢

分类:MUI

点击输入时(在子页面,只有中间内容,是文本框),点击输入时, 会把父页面底部菜单顶起来了.
需要点击子页面输入框时,隐藏父页面底部菜单.
如何解决啊
,谢谢

2015-04-09 17:01 负责人:无 分享
已邀请:
stock2

stock2 (作者)

有知道的,指点下哦. 谢谢.

stock2

stock2 (作者)

再顶下. 谢谢

DCloud_heavensoft

DCloud_heavensoft

输入法弹出会挤压屏幕高度。
输入法弹出后,屏幕高度会变化,判断下高度用代码隐藏显示相关的dom也可以的。

stock2

stock2 (作者)

类似的 a页面里 用了main的底部菜单. 被顶起了. 能给出代码解决吗,谢谢.
<body>
<nav class="mui-bar mui-bar-tab">
<a id="defaultTab" class="mui-tab-item mui-active" href="a.html">
<span class="mui-icon mui-icon-home" >首页</span>
</a>
<a class="mui-tab-item" href="b.html">
<span class="mui-icon mui-icon-chat">消息</span>
</a>
<a class="mui-tab-item" href="c.html">
<span class="mui-icon mui-icon-search " >通讯录</span>
</a>
<a class="mui-tab-item" href="d.html">
<span class="mui-icon mui-icon-gear" >设置</span>
</a>
</nav>
</body>

stock2

stock2 (作者)

能回答下吗,谢谢

DCloud_UNI_FXY

DCloud_UNI_FXY

可以用类似下列方案处理,手写代码,未经验证。

.focusin .mui-bar.mui-bar-tab{  
display:none;  
}  
document.addEventListener('focusin',function(e){  
var target = e.target;  
			if (target.tagName && target.tagName === 'INPUT' && target.type === 'text') {  
				if (target.disabled || target.readOnly) {  
					return;  
				}  
document.body.classList.add('focusin');  
}  
  
});  
document.addEventListener('focusout',function(){  
document.body.classList.remove('focusin');  
});
stock2

stock2 (作者)

谢谢楼上 .我会测试后报告结果.
没有看懂,是不是 输入法出来了,就隐藏掉底部菜单,输入法消失 再显示?
这个 focusin 是监听输入法的?

  • DCloud_UNI_FXY

    嗯。大概是这个意思。不过上述代码不完整。需要你在focusin里边,判断event.target是不是input。是的话,才加样式,不是的话,不加。


    2015-04-11 19:12

stock2

stock2 (作者)

我测试了,在子页面可以监听到 点击input后触发了日志(我加的)
在子页面,如何隐藏父页面的底部菜单?
<nav id="menuA" class="mui-bar mui-bar-tab">
我试着用了evalJS(document.getElementById("menuA").style.display="none");尝试更改也不行. 请再次帮忙看看 .谢谢 :)

  • DCloud_UNI_FXY

    测试你的js是否正确执行了。


    2015-04-14 21:22

  • stock2 (作者)

    执行evaljs 报 Cannot read property 'style' of null


    2015-04-15 08:28

  • stock2 (作者)

    请问 在子页面可以通过evalJS修改父页面的内容?


    2015-04-15 08:28

stock2

stock2 (作者)

父页面上面给出了代码.

子页面<input type="text" id="sysid" >

请问点击输入法时,如何屏蔽父页面的底部菜单?

stock2

stock2 (作者)

结贴. 自己搞出来了.超级郁闷.
因为调用过扫描,才知道 evalJS强大.
我还发过贴 问 evalJS到底是什么,也无人回答
使用evalJS前要声明下面的
plus.webview.currentWebview().opener();
我再问下, 是不是打开了10个页面,我当前页想执行第二个页面的,

对应的plus.webview.currentWebview().opener(); 就是第二页句柄吧?

这的很无奈, 这个耗费我几天时间 ,我一点点自己猜,解密 一样. 累啊.

  • KingMing

    具体怎么解决的啊,能不能分享下? 我也遇到这问题。。。


    2015-04-16 15:44

  • stock2 (作者)

    var aa=null;

    aa=plus.webview.currentWebview().opener();

    然后执行 aa.evalJS(" 函数名 可以直接调用父页面函数 ,子页面的值也可以在这里传递到父页面 ");

    下面给你参考 type就是子页面的值 传递到父页面的

    aa.evalJS("scaned('"+ type +"','"+ result +"','"+ file +"');");

    scaned 是父页面的过程 function 定义的名字


    2015-04-16 18:12

  • stock2 (作者)

    这里帮助文件 真的糟糕的一塌糊涂 .我准备转 appcan了.


    2015-04-16 18:14

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