龙空技术网

实现移动端设置高度自适应的输入框

行家汇 272

前言:

现在咱们对“div高度自适应屏幕”大致比较看重,你们都需要学习一些“div高度自适应屏幕”的相关知识。那么小编也在网络上网罗了一些有关“div高度自适应屏幕””的相关内容,希望姐妹们能喜欢,兄弟们一起来了解一下吧!

textarea的核心想法: $(this).height(this.scrollHeight)

这个方法在ios上会变得非常奇怪,因为我们使用input进行监听输入的时候,事实上他会把还没输入到屏幕上的文字还在输入法上的文字也计算在里边,所以使用input进行监听是非常不妥当的,事实上有一个方法能够监听中文的输入,但仅仅是中文的输入,compositionend能够监听中文的输入,没选中文的输入不会进行监听。ios出现问题就是每次设置auto,一旦我们输入的内容超过键盘,ios就会不断闪频。目前没找到解决的方法,我看作文纸条这个app上是实现了这个功能,但是他是使用的原生来实现的。

占位符:不简单的自适应高度输入框,所以那段时间疯狂在网上找解决方法。这是一种方法,但是这个方法是有问题的,如果我们要给输入的东西加上背景,比如说给textarea加上一个背景,然后问题就出现了,因为span是行内元素,背景能够到达的位置是span输入的内容范围,如果是内容少还好,内容多就炸了,一行中有一部分是没有背景颜色的。

偏移的方法就是把textarea和div的样式设置成完全一样,必须完全一样,然后把div的偏移量设置特别大,但是不能够设置div为display: none,这样我们就获取不到他的高度了,随便你怎么设置,只要隐藏这个东西就好了。

contenteditable还有一种方法是把div变为可编辑的状态,但是这种方法一来就被我放弃了,因为要兼容多种机型,可能有的机型不兼容,而且要输入的字数,使用的很少见的DOMNodeInserted。

以上这几种方法各自解决各自的问题,大家有统一解决的方法一起来讨论。

标签: #div高度自适应屏幕 #自适应高度