`
fen5251
  • 浏览: 20927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTML5 虚拟键盘出现挡住输入框的解决办法

阅读更多

1,问题描述

我们使用 H5 做移动 App,或者进行移动网站开发时。如果文本输入框在整个页面的下方,当我们点击输入框要输入文字时,系统弹出的虚拟键盘就会将输入框给挡住。(这个只有在Android 系统下会有这个问题,iOS 系统会自动将整个页面上移动。)

2,解决办法

我们可以借助元素的 scrollIntoViewIfNeeded() 方法。这个方法执行后如果当前元素在视口中不可见,则会滚动浏览器窗口或容器元素,最终让它可见。如果当前元素在视口中已经是可见的,这个方法什么也不做。

3,样例代码

这里使用了 jQuery 绑定了所有输入框(textinput、textarea)的点击事件,这样当输入框被点击后就调用它的 scrollIntoViewIfNeeded() 方法,保证输入框可见。(延迟400毫秒出现时有些 Android 手机键盘出现的比较慢)


防止键盘把当前输入框给挡住
$('input[type="text"],textarea').on('click', function () {
  var target = this;
  setTimeout(function(){
        target.scrollIntoViewIfNeeded();
        console.log('scrollIntoViewIfNeeded');
      },400);
});

 

分享到:
评论

相关推荐

    Android-键盘挡住输入框终极解决办法

    在提供的压缩文件"SoftboradBlockEdittext-master"中,可能包含了一个完整的示例项目,展示了如何运用上述方法之一或多种组合来解决键盘遮挡输入框的问题。通过研究该项目的代码,开发者可以更深入地理解这些解决...

    安卓输入框被虚拟键盘挡住的问题(微信开发)

    总的来说,解决安卓输入框被虚拟键盘挡住的问题需要开发者具备良好的跨平台适配意识和技术,可能涉及到页面布局的动态调整、滚动事件的监听以及对不同浏览器行为的理解。尽管存在一些限制,但通过不断尝试和优化,总...

    5种方法完美解决android软键盘挡住输入框方法详解

    本文将详细介绍5种有效的方法来解决软键盘挡住输入框的问题,并讨论它们的适用场景、优缺点以及使用注意事项。 1. **方法一:非透明状态栏下使用`adjustResize`和`adjustPan`** - `adjustResize`:当键盘弹出时,...

    Android键盘挡住输入框

    亲测可用,可以直接放到项目中进行使用 * 本来以为Actviity设置下android:windowSoftInputMode="adjustResize|...不行吧,我这边已经全部解决,键盘遮挡输入框,遮挡输入框下登录按钮,一 一解决了 简单操作,易扩展

    IOS 键盘挡住输入框的问题解决办法

    IOS 键盘挡住输入框的问题解决办法 IOS 键盘挡住输入框的问题是一个常见的问题,在 iOS 开发中,我们经常遇到这种情况:当用户开始输入时,键盘弹出,挡住输入框,使用户无法看到实时的输入情况。这对用户体验非常...

    Android爬坑之旅:软键盘挡住输入框问题的终极解决方案.docx

    Android 软键盘挡住输入框问题的终极解决方案 Android 软键盘挡住输入框问题是 Android 开发中一个经典的问题,特别是在使用 WebView 的情况下。这篇文章将详细介绍这个问题的成因、解决方案和最终的解决方法。 在...

    iOS 键盘遮挡输入框万能解决方案(多个输入框)

    在iOS开发中,当用户需要在屏幕上输入信息时,键盘的弹出往往会导致屏幕下方的输入框被遮挡,这给用户体验带来了不便。...下载并研究这个文件将有助于深入掌握如何在实际项目中解决键盘遮挡输入框的问题。

    Android 爬坑之旅:软键盘挡住输入框问题的终极解决1

    Android软键盘挡住输入框问题的终极解决方案 Android开发中,软键盘挡住输入框是一个常见的问题,本文将详细讲解该问题的解决方案。 一、问题描述 在Android开发中,软键盘挡住输入框是一个非常常见的问题。这种...

    ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)

    这个问题在描述中被称为"键盘挡住输入框"的问题。解决这个问题对于提供良好的用户体验至关重要,特别是对于那些要求高度交互的应用,如微信这样的即时通讯工具。 在上述的解决方案中,开发者创建了一个AngularJS...

    软键盘挡住EditText完美解决方案

    ### 软键盘挡住EditText完美解决方案 在移动应用开发中,经常会遇到这样一个问题:当用户在界面上点击一个输入框(EditText)时,软键盘弹出后会遮挡该输入框,导致用户无法清晰地看到自己正在输入的内容,极大地...

    IOS 解决输入框被键盘遮挡问题

    如果你的输入框需要在键盘出现时保持在可视区域,可以将这个附加视图设计成一个透明的视图,并将输入框添加到这个视图中,这样输入框就会随着键盘一起升起。 2. `inputView`: 对于某些特殊情况,你可能希望自定义...

    解决react-native软键盘弹出挡住输入框的问题

    解决 React Native 软键盘弹出挡住输入框的问题 React Native 是一个基于 JavaScript 和 React 的框架,用于开发跨平台的移动应用程序。然而,在 React Native 中,软键盘的弹出可能会挡住输入框,导致用户无法输入...

    Delphi XE 10.2 FMX 程序中避免输入焦点被虚拟键盘遮挡

    总的来说,解决Delphi XE 10.2 FMX程序在Android平台上虚拟键盘遮挡问题的关键在于监听键盘事件并动态调整界面布局。`Fmx.vkbdhelper.pas`中的`TVKBHelper`类为此提供了一种简洁有效的解决方案,使得开发者无需深入...

    根据输入框的弹出改变界面样式,解决键盘挡住输入框的问题

    就有可能把用户名和密码框放在手机屏幕的中间或底部,这样当软键盘弹出的时候,就有可能挡住输入框(往往用户输完用户名和密码还要按返回键盘...这样用户体验是不好的,该demo是一个解决该问题相对比较好的一个方法了。

    LayoutsPro控件 避免输入焦点被虚拟键盘遮挡

    在Android应用中,当用户在底部输入框输入时,虚拟键盘的弹出经常会覆盖掉部分屏幕内容,导致用户无法看到或触及到当前的输入焦点。这在许多需要大量输入的场景下是一个常见的问题。 "LayoutsPro控件"针对这一问题...

Global site tag (gtag.js) - Google Analytics