今天开发的过程中,遇到了一个小问题,是这样的,  UI的设计稿中有个底部的按钮是相对于屏幕定位的,但是这个页面还有一个输入框;具体情况请看下图:

  这就造成了当我们输入框获取焦点的时候,键盘弹起,下面的“确认出售”按钮会跑到键盘的上面去,见截图:

所以这个就有错误了。去网上找了解决方案,但是他是在监测输入框是否有焦点,但是手机在收起键盘的时候,输入框仍是有焦点的。这个时候这个方法就不能成功了。但是他的思想是正确的,就是在键盘弹起的时候,隐藏下面的按钮,等到键盘收起的时候在显示,这样的话就不会出现上图的情况了。

  所以就需要改变监测的方式,最直接最简单的方式就是检测屏幕内容区域的大小改变。当进入这个页面的时候先确定一个大小的值,我们命名为“h”,当内容区域改变的时候监测这个最新区域的大小,如果小于了,我们就认为现在是小键盘弹起了,就让下面的按钮隐藏,当键盘下去的时候,最新的区域大小是等于原来的大小的,就让底部的按钮显示;这样就能比较完美的解决这个问题。废话不多说,下面直接上代码:

 

 var h = document.body.scrollHeight;
window.onresize = function(){
if (document.body.scrollHeight < h) {
document.getElementsByClassName("sure_sell")[0].style.display = "none";//我的下面的按钮的class名为sure_sell
}else{
document.getElementsByClassName("sure_sell")[0].style.display = "block";
}
};

注意,这段代码是针对安卓微信公众号的web页面的。对于ios不会触发onresize的这个函数的,当然,ios也不存在上述的问题,貌似是因为ios键盘弹起的时候,是整个页面往上滑,整个页面的布局不会变。

最新文章

  1. Linux 常用命令(持续补充)
  2. exec、source以及bash的区别(zz)
  3. Hadoop-2.6.0 + Zookeeper-3.4.6 + HBase-0.98.9-hadoop2环境搭建示例
  4. jenkins自动构建截图
  5. MacOS 下端口占用解决办法
  6. python之json
  7. django 开发简易博客(二)
  8. Android:自定义Dialog大小,显示圆角
  9. Day-14: 常用的内建模块
  10. LArea插件的使用
  11. 如何定义开发完成?(Definition of Done)
  12. 论文笔记:Joint Embeddings of Shapes and Images via CNN Image Purification
  13. MSSQL—行转列
  14. Android : 关于HTTPS、TLS/SSL认证以及客户端证书导入方法
  15. PHP magic_quotes_gpc 和 addslashes解析
  16. dns bind配置教程
  17. Codeforces 888E - Maximum Subsequence(折半枚举(meet-in-the-middle))
  18. 决策树 (decision tree)
  19. 普通方法调用,Invoke,begininvoke三者的区别总结及异步与同步的区别总结
  20. 【BZOJ 3747】 3747: [POI2015]Kinoman (线段树)

热门文章

  1. Winform 窗体获得焦点
  2. 初次接触之R语言
  3. [Swift]LeetCode9. 回文数 | Palindrome Number
  4. Redis 设计与实现 (二)--数据库
  5. &quot;无需开发经验&quot; 也能拥有小程序
  6. PHP-mysqli 出错回显
  7. java基础(十五)----- Java 最全异常详解 ——Java高级开发必须懂的
  8. PyQt:个性化登录界面模仿QQ登录
  9. Babel presets stage
  10. Flink生成Parquet格式文件实战