ios中,输入框获得焦点时,页面输入框被遮盖,定位的元素位置错乱

简介: ios中,输入框获得焦点时,页面输入框被遮盖,定位的元素位置错乱

当页input存在于吸顶或者吸底元素中时,用户点击输入框,输入法弹出后,fiexd失效,页面中定位好的元素随屏幕滚动。
方案一: 在scrollIntoView 的应用,将input输入框显示在可视区域。

// 输入框获得焦点时,元素移动到可视区域

 inputOnFocus(e) {
    setTimeout(function(){
 // true:元素的顶端将和其所在滚动区的可视区域的顶端对齐; false:底端对齐。
        e.target.scrollIntoView(true);      
   },200);  // 延时 == 键盘弹起需要时间
 }

不过有点小缺陷:页面过长时,由于fixed失效,输入框依然也会跟着页面滑走。
这时,我们需要一个固定的输入框......
方案二:在输入框获得焦点时,将页面滑动到最底部,避免fixed导致的页面乱飞,并且保证input在最底部。

var timer;
 // 输入框获得焦点时,将元素设置为position:static,设置timer
 inputOnFocus(e) {
    e.target.style.className = 'input input-static';
     timer = setInterval(
        function() {
           document.body.scrollTop = document.body.scrollHeight
        }, 100)
 };
 // 输入框失去焦点时,将元素设置为 position:fixed,清除timer
 inputOnbulr(e) {
    e.target.parentNode.className = 'input input-fixed';
    clearInterval(timer)
 };
目录
相关文章
|
7月前
|
程序员 定位技术 开发工具
iOS11及以上操作系统无法定位问题完美解决方案
iOS11及以上操作系统无法定位问题完美解决方案
74 1
|
7月前
ios15从隐藏系统导航栏页面进入显示系统导航栏页面后,期望系统导航栏背景色为白色,但是导航栏背景变成黑色问题
ios15从隐藏系统导航栏页面进入显示系统导航栏页面后,期望系统导航栏背景色为白色,但是导航栏背景变成黑色问题
66 0
|
7月前
|
移动开发 iOS开发 Perl
iOS客户端和h5页面的互相调用,服务器和客户端间通信方式
iOS客户端和h5页面的互相调用,服务器和客户端间通信方式
107 0
|
7月前
|
移动开发 Android开发 iOS开发
ios标准页面调用HTML5页面和HTML5调用ios的函数
ios标准页面调用HTML5页面和HTML5调用ios的函数
52 0
|
7月前
|
Web App开发 移动开发 Android开发
解决IOS Safari浏览器H5页面上下滑动时卡顿、页面缺失的问题
解决IOS Safari浏览器H5页面上下滑动时卡顿、页面缺失的问题
|
iOS开发
ios fixed定位问题
ios fixed定位问题
127 0
vue--ios手机input点击手机输入键盘顶起页面解决方案
vue--ios手机input点击手机输入键盘顶起页面解决方案
|
iOS开发
iOS 第三方dSYM定位BUG
iOS 第三方dSYM定位BUG
137 0
|
Linux iOS开发 Windows
07-appium-Appium Desktop查看元素- iOS
07-appium-Appium Desktop查看元素- iOS
|
前端开发 API Android开发
Android侧滑踩坑记(仿IOS侧滑finish页面基于Slidr库)
Android侧滑踩坑记(仿IOS侧滑finish页面基于Slidr库)
300 0