使用 contenteditable 属性在iOS中光标和选择框不跟随滚动的问题?

新手上路,请多包涵

web编辑器用到<div contenteditable="true">,但是当其父标签都带有 height: 100% 样式的时候,在iOS的webkit内核浏览器中,当光标不选中或选中文字的时候,滚动屏幕,会出现光标或选中框不跟随滚动的情况,当手指抬起之后,光标或选中框才直接跳到选中区域。

代码如下:
代码点击这里下载
clipboard.png

操作过程如下图所示:
1.先选中一段文字

clipboard.png

2.问题:向上推动,发现选中区域一直停留在原来的位置,没有跟随文字向上滚动。这在使用过程中体验非常差。由此原因还经常导致光标乱跳的情况。

clipboard.png

3.手指抬起,当惯性滚动结束之后,选中框跳到了正确的位置

clipboard.png

4.正常的情况下,当滚动时,选中框应该紧紧跟随文字进行滚动。


我的分析:
我发现当上面的三个height: 100%样式,只要去掉其中一个,都能正常。但是height: 100%这又不能随便去掉,因为要让整个编辑区域适配浏览器的高度。


求助各位大神,是否有人遇到这个问题,该怎么解决???

阅读 3.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题