input输入框中的光标在ios上乱跳的问题

最近一个项目中碰到一个问题:
在一个页面中点击一个按钮会出现一个弹出框,这个弹出框给了fixed定位,并且宽高都等于100%,在这个弹出框中有包含input输入框的div,这个div未做定位设置。页面操作中看不出来什么问题,真机操作的时候会发现,安卓上没有问题,但是在ios上就出现问题了,尤其是ios11系统上,问题表现非常明显。在输入框输入内容的时候,手机下方会弹出一个键盘,然后输入框中光标就跟丢了魂似的乱窜,本以为会是个别手机屏幕问题,拿出几个ios测试机,一番简单测试后发现,是普遍存在的问题,尤其在ios11上比较明显。看着那乱窜的光标,瞬间懵十三了。
一番简单查阅,了解到这是在ios上存在的一个坑,前人已经给出了几种解决方案,查看几篇相关技术博客,看了一遍,那写的是毛玩意,顿时心有不畅,然后尝试着按照自己理解的思路去解决,结果成了,光标的魂终于回来了。在此分享下我的解决思路:
如果弹出框是fixed定位,并且弹出框中输入框,那么就很可能会出现这种问题。很简单的解决办法,你把fixed定位去掉,改变你的样式表现方式。我这里是把弹出框改成absolute定位,弹出框的父元素改成relative定位解决的。
这里推荐一篇写的不错的文章,很好的阐述了这种问题和解决思路。
Web移动端Fixed布局的解决方案

你可能感兴趣的:(前端开发)