21

当屏幕底部的输入字段获得焦点时,键盘将我的 webview 向上推,页面的上部不再可见。

我想防止键盘向上推 webview。

有人有想法吗?

4

6 回答 6

26

在焦点上,设置window.scrollTo(0,0); 这可以防止键盘完全向上推 webview

$('input').on('focus', function(e) {
    e.preventDefault(); e.stopPropagation();
    window.scrollTo(0,0); //the second 0 marks the Y scroll pos. Setting this to i.e. 100 will push the screen up by 100px. 
});

如果您不想为 Y 滚动位置设置静态值,请随意使用我编写的这个简短插件,它会自动在输入字段下方对齐键盘。它并不完美,但它可以完成工作。只需将其称为焦点,如上所示:

setKeyboardPos(e.target.id);
于 2012-12-12T02:47:05.963 回答
14

使用driftyco/ionic-plugins-keyboard ( https://github.com/driftyco/ionic-plugins-keyboard )解决了这个问题

首先安装键盘插件:

cordova plugin add com.ionic.keyboard

现在你可以我)要么禁用本机键盘滚动:

cordova.plugins.Keyboard.disableScroll(true);

II)监听native.keyboardshow事件deviceready并在键盘显示时滚动回顶部:

window.addEventListener('native.keyboardshow', keyboardShowHandler);

function keyboardShowHandler(e){
    setTimeout(function() {
        $('html, body').animate({ scrollTop: 0 }, 1000);
    }, 0);
}

我使用了 II) 方法,因为我喜欢我的案例中的动画滚动。如果您不想使用动画,请将相应的行替换为window.scrollTo(0, 0);. 但恐怕在那种情况下,你将不得不再次处理Imskull所写的“垃圾抖动动画”。

于 2014-09-05T17:52:54.503 回答
4

我遇到了同样的问题,上面的解决方案都没有帮助我,但我找到了一个简单的方法来解决它。

在 platform/android 文件夹中打开 manifest.xml 并在主活动标签中将 android:windowSoftInputMode="adjustResize" 属性替换为 android:windowSoftInputMode="adjustPan"

现在键盘将覆盖您的内容。

我希望它会帮助某人。

于 2016-11-07T15:21:05.337 回答
4

在我不得不自己找到答案之前,我确实经历了 100 个答案。所以这里是如何在 IOS 上禁用 UI 的滚动。只需在加载科尔多瓦时,添加它。请安装:

cordova plugin add ionic-plugin-keyboard --save

然后cordova prepare将这个新插件加载到您的 www 文件夹中。

document.addEventListener('deviceready', function(e){
    window.addEventListener('native.keyboardshow', function () {
            cordova.plugins.Keyboard.disableScroll(true);
        });
});

就是这样。请让我知道这是否有帮助。我很乐意回答更多。

于 2018-02-19T09:38:45.337 回答
4

将此选项添加到config.xml对我来说是诀窍。

<preference name="KeyboardShrinksView" value="true" />

It has been removed in Cordova 3.2.0 but is available in cordova-plugin-keyboard.

You need to install this plugin and this option will work again

cordova plugin add cordova-plugin-keyboard
于 2019-06-22T11:12:45.660 回答
3

确保在您的 config.xml

<preference name="KeyboardShrinksView" value="true" />
于 2016-11-23T09:10:48.890 回答