小编Dec*_*y42的帖子

当android键盘打开时,防止文档重排/浏览器调整大小

这是针对HTML5/Javascript WebApp,而不是原生Android应用程序.

当android软键盘打开时,如何防止浏览器/ DOM调整我的内容大小(响应速度,大多数是大小等vw/vh)?发生的事情是,打开键盘后,内容(尤其是字体大小)会发生变化(例如,在输入字段上).

我已经准备好了

<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
Run Code Online (Sandbox Code Playgroud)

我想要实现的是,键盘充当叠加层,下面的内容变得可滚动.所以基本上,android:windowSoftInputMode在一个Android清单中会做什么.

当调整大小量在一定范围内时,我也尝试听窗口调整大小事件并阻止它(参见另一个问题的答案).但这里发生的事情是,键盘打开后立即再次关闭.(*)

所以我的基本想法是:

  • 阻止浏览器计算新的大小(好像没有调整大小)
  • 将键盘设置为叠加层,而不是调整窗口大小的单个元素
  • 在我已测试的防止调整大小方法中保持键盘打开(*)

但我无法找到任何这些的工作解决方案.

html javascript html5 android

9
推荐指数
1
解决办法
1795
查看次数

对象任意属性的吸气剂

我有一个看起来像这样的课程

export default class {
  constructor () {
    this.store = {}
  }

  setX (x, y) {
    this.store[x] = y
  }
}
Run Code Online (Sandbox Code Playgroud)

当获得未定义的值时,我将如何定义一个 getterthis.store来返回0

让我举个例子吧:

setX('a', 1)将设置this.store['a']1

然后this.store['a']会返回1,正如预期的那样。

但是this.store['b']会返回undefined,但我希望 getter 返回0(并且可能调用setX('b', 0),还不确定)。

我知道我可以Object.defineProperty用来定义一个自定义的 getter,我只是无法理解如何访问该store对象的一个任意的、尚未定义的属性。

这是可能的还是我必须使用这样的解决方法?

getX (x) {
  return this.store[x] || 0
}
Run Code Online (Sandbox Code Playgroud)

我想避免这种情况,因为this.store[x]看起来更干净。

javascript oop getter ecmascript-6

5
推荐指数
1
解决办法
304
查看次数

标签 统计

javascript ×2

android ×1

ecmascript-6 ×1

getter ×1

html ×1

html5 ×1

oop ×1