部分安卓手机点击输入框,输入法会将输入框遮住问题
2017-11-27 11:25
429 查看
在写移动端页面时候在乐视手机测试时,点击输入框,输入框无法自动调整到可视区域,并且输入法挡住了输入框,在其他苹果和安卓手机上测试是可以自动移动到可视区域的
上网找了一些方法:
1、scrollIntoView(true | false) 滚动浏览器窗口或容器元素,以便在当前视窗的可见范围看见当前元素。如果为true,或者省略它,窗口会尽可能滚动到自身顶部与元素顶部平齐。目前各浏览器均支持
2、scrollIntoViewIfNeeded(alignCenter) 只在当前元素在视窗的可见范围内不可见的情况下,才滚动浏览器窗口或容器元素,最终让当前元素可见。如果当前元素在视窗中可见,这个方法不做任何处理。如果将可选参数alignCenter设置为true,则表示尽量将元素显示在视窗中部(垂直方向)Safari、Chrome实现了这个方法
这个两个方法,乐视手机并不支持第二个,所以只能用第一个方法,使用过后,所有手机点击输入框都是以浏览器顶部对齐,我们想要的只是改变乐视手机浏览的问题,其他手机不做处理
后来又在网上找了一些方法
经过实践,发现乐视手机依然很蛋疼,当你点击输入框,弹起输入法的时候,页面并不会触发resize,但是在其他手机上是可以触发的,并且我换了2个输入法,依然没有效果。
最后解决的办法
1、首先我先用 navigator.userAgent.toLowerCase()来区别是否是乐视的手机
2、判断是乐视手机后,再使用scrollIntoView(true),将输入框移动到页面顶端,再使用window.scrollBy(0,-100);将页面向下移动100像素,完成
贴上代码
如果各位有更好的方法,欢迎提供,谢谢
上网找了一些方法:
1、scrollIntoView(true | false) 滚动浏览器窗口或容器元素,以便在当前视窗的可见范围看见当前元素。如果为true,或者省略它,窗口会尽可能滚动到自身顶部与元素顶部平齐。目前各浏览器均支持
2、scrollIntoViewIfNeeded(alignCenter) 只在当前元素在视窗的可见范围内不可见的情况下,才滚动浏览器窗口或容器元素,最终让当前元素可见。如果当前元素在视窗中可见,这个方法不做任何处理。如果将可选参数alignCenter设置为true,则表示尽量将元素显示在视窗中部(垂直方向)Safari、Chrome实现了这个方法
这个两个方法,乐视手机并不支持第二个,所以只能用第一个方法,使用过后,所有手机点击输入框都是以浏览器顶部对齐,我们想要的只是改变乐视手机浏览的问题,其他手机不做处理
后来又在网上找了一些方法
/*input、textarea等输入框被输入法遮罩的解决方法*/ var clientHeight=document.body.clientHeight; var focusElem=null; //输入框的焦点 //利用捕获事件来监听输入框等的focus document.body.addEventListener('focus',function(e){ focusElem=e.target||e.srcElement; },true); //因存在软键盘显示而屏幕大小还没改变,所以以屏幕大小改变为准 window.addEventListener('resize',function () { if (focusElem&&document.body.clientHeight<clientHeight){ //焦点元素滚动到可视范围底部(false为底部) focusElem.scrollIntoView(false); } });
经过实践,发现乐视手机依然很蛋疼,当你点击输入框,弹起输入法的时候,页面并不会触发resize,但是在其他手机上是可以触发的,并且我换了2个输入法,依然没有效果。
最后解决的办法
1、首先我先用 navigator.userAgent.toLowerCase()来区别是否是乐视的手机
2、判断是乐视手机后,再使用scrollIntoView(true),将输入框移动到页面顶端,再使用window.scrollBy(0,-100);将页面向下移动100像素,完成
贴上代码
$('#input').on('focus',function(){ var ua = navigator.userAgent.toLowerCase(); if (/le x620/.test(ua)) { input.scrollIntoView(true); window.scrollBy(0,-100); console.log($(window).scrollTop()) } });
如果各位有更好的方法,欢迎提供,谢谢
相关文章推荐
- 安卓手机输入法盖住输入框问题
- 手机点击输入框,弹出输入法会盖住web的文本框问题。
- 手机端网页:安卓手机输入法遮挡输入框问题
- JS 解决安卓手机输入框被软键盘遮住的问题
- 完美解决手机网页中输入框被输入法遮挡的问题
- 安卓手机键盘弹出输入框被挡住问题
- 手机中点击一个链接或文本输入框出现一个半透明的背景的问题
- Android电视上解决输入法弹起遮住输入框中的问题
- 手机调用系统的拍照和裁剪功能,如果界面有输入框EditText,在一些手机会出现点击EditText会弹出输入法,却不能输入的情况。
- iscroll 部分android手机(如三星的)不能点击兼容问题
- 安卓学习笔记---解决在在Edittext输入的时候,输入框被软键盘遮挡部分内容的问题(二)
- react在安卓中输入框被手机键盘遮挡问题的解决方法
- 手机调用系统的拍照和裁剪功能,假设界面有输入框EditText,在一些手机会出现点击EditText会弹出输入法,却不能输入的情况。
- 部分android手机CCEditBox输入之后键盘输入框不消失得问题
- 安卓手机弹出键盘遮盖输入框问题
- 完美解决部分安卓手机调用系统拍照上传时图片旋转问题
- 安卓学习笔记---解决在在Edittext输入的时候,输入框被软键盘遮挡部分内容的问题(一)
- 解决cocos2dx CCArmature动画在部分型号的安卓手机上播放不正常的问题
- 注册页面在安卓手机上调用输入法的时候背景上移问题
- unity3d 5.0以上打包安卓apk部分手机黑屏问题,尤其魅族手机