问题描述:ios弹出虚拟键盘的时候会自动将页面顶上去,不会遮住input输入框,而安卓则会挡住。

解决办法:

1.使用如下代码来区分安卓,存入localStorage中

if ((navigator.userAgent.match(
                /(Android)/i
            ))) {
            /*你的手机版*/
            localStorage.setItem("noPC", true);
        }
 
2.判断是安卓端,监听input输入框聚焦事件,input聚焦必定弹出虚拟框,此时给页面加padding-bottom使页面可滚动(因为页面(容器)可滚动时scrollIntoView()才有用!),再使用scrollIntoView()使input框滚动到可视区域,代码如下
$('input').on("focus", function() {
        if (localStorage.getItem("noPC")) {
            $("#chagePWD").css({
                "padding-bottom": "400px",
            })
            setTimeout(() => {
                const activeElement = document.activeElement;
                activeElement.scrollIntoView(); //焦点元素滚到可视区域
            }, 200);
        }
    });
 
3.监听input输入框失去焦点事件,虚拟键盘收起,页面恢复原样,代码如下
$('input').on("blur", function() {
        if (localStorage.getItem("noPC")) {
            $("#chagePWD").css("padding-bottom", "0px")
        }
    });
 
在各安卓手机和安卓平板上亲测兼容良好
 
 

scrollIntoView()的解释:

scrollIntoView是一个与页面(容器)滚动相关的API(官方解释),该API只有boolean类型的参数能得到良好的支持(firefox 36+都支持),所以在这里只讨论参数Boolean类型的情况。

调用方法为 element.scrollIntoView() 参数默认为true。

参数为true时调用该函数,页面(或容器)发生滚动,使element的顶部与视图(容器)顶部对齐;

参数为false时,使element的底部与视图(容器)底部对齐。

TIPS:页面(容器)可滚动时才有用!

 
 

最新文章

  1. 现有语言不支持XXX方法
  2. 【异常】ORA-01536: space quota exceeded for tablespace
  3. H264解码学习-2015.04.16
  4. 三、jQuery--Ajax基础--Ajax全接触--扩展知识(跨域)
  5. 【原】iOSCoreAnimation动画系列教程(二):CAKeyFrameAnimation【包会】
  6. Windows自带Android模拟器启动失败
  7. vSphere Client上传镜像
  8. phpstorm laravel单元测试 配置
  9. SDS查看部署在集成TOMCAT服务器中的项目目录结构
  10. js key事件 keyCode大全
  11. C语言学习_一个简单程序的解释与C学习方法概括
  12. ZOJ-2587-Unique Attack(最小割的唯一性)
  13. 01.Net入门知识
  14. JS中typeof与instanceof的区别 (2010-05-26 10:47:40
  15. CSS3的background-size
  16. Java NIO-3
  17. spring boot 部署
  18. 常用数据库1 sqlserver
  19. (字符串处理)Fang Fang -- hdu -- 5455 (2015 ACM/ICPC Asia Regional Shenyang Online)
  20. jquery,checkbox无法用attr()二次勾选

热门文章

  1. [随笔所想] UBC学习生活经验分享
  2. 模型驱动设计的构造块(下)——DDD
  3. dotnet 代码优化 聊聊逻辑圈复杂度
  4. python之路51 聚合查询 分组查询
  5. java进阶篇——Stream流编程
  6. 一个关于sum over的疑问
  7. Python面向对象(上)
  8. CSS-@规则(At-rules)常用语法使用总结
  9. 【Oculus Interaction SDK】(五)设置不同的抓握手势
  10. JavaScript所有内部属性列表 [[Configurable]] 等