javascript - 如何在运行时调整 Ionic 4 IonContent 的高度

标签 javascript css angular ionic-framework

我有一个 Ionic 4/Angular 应用程序,其中有一个组件显示在 Modal 中(这可能对这个问题没有影响)

当我构建 (Cordova) 并在 Windows 平板电脑上运行时,显示软键盘时没有自动调整应用程序大小(我现在已经接受了)。

每当我有一个将显示此键盘的输入时,我需要手动调整内容才能让输入显示在键盘上方。

当我的输入获得焦点时,我正在尝试调整 IonContent 的高度。

例如我有以下...

    public async onTextFocus(ev: any): Promise<void> {
        try {
          let i = 0;
          let el = await this.content.getScrollElement();
          let style = el.style;
          el.setAttribute('height', '50%');

          style = el.style;
          let j = 0;

        } catch (error) {
          this.logger.error(`MyComponent.onTextFocus: ${error}`);
        }
      }

所以我试图将内容设置为 50%,但是当我执行上述操作时没有任何反应。此外,当我在调用 el.setAttribute('height', '50%'); 后重新检查样式时,高度仍未设置(它只是一个空字符串)

使用 devtool,我尝试调整我能找到的所有东西的高度。唯一可行的是如果我将它设置在父组件上(但不知道如何在运行时执行此操作)。

我怎样才能调整高度(这样我就可以在 onBlur 中重新设置),这样我就可以看到我的输入元素了?

最佳答案

通过反复试验,至少找到了一种方法..

可能有更好的方法,但一种可行的方法很简单..

let el = await this.content.getScrollElement();
el.style['height'] = '50%';      
this.content.scrollToBottom();

似乎工作正常

关于javascript - 如何在运行时调整 Ionic 4 IonContent 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59315683/

相关文章:

javascript - 为什么这个 javascript 猜谜游戏不能正确运行?

html - 如何修改 Bootstrap 表单,使一些字段在屏幕左侧对齐,而其他字段在屏幕右侧对齐?

html - 如何在彼此之上显示div?

angularjs - 为什么 Angular 2 项目如此之大

javascript - 如何在 Angular 4 中使用 NgIf 设置输入字段的值

javascript - 在定义构造函数后,实例属性可以添加到 JavaScript 原型(prototype)吗?

Javascript/Jquery 代码在第一个事件上运行一次,在第二个事件上运行两次,依此类推

javascript - NaN 评估背后的逻辑是什么?

html - CSS::child 设置为在父鼠标悬停时更改颜色,但在鼠标悬停时也会更改

angular - 按升序和降序对 ngx-datatable 中的数字列进行排序。 Angular 2/4