OGeek|极客世界-中国程序员成长平台

标题: ios - iOS 11修复了滚动输入错误+抖动 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 19:11
标题: ios - iOS 11修复了滚动输入错误+抖动

iOS 11与固定容器内的输入有问题,特别是与iOS 11对焦+键盘光标与输入不对齐:
more here
我有一个元素.rn-drawer应该固定在页面顶部,而页面内容的其余部分是可滚动的。固定元素包含一个输入。

.rn-drawer {
    position: fixed;
    transition: all 0.25s ease-in-out;
    display: flex;
    height: 260px;
}

通过简单地将下面的.iOS-fix应用到父/根容器,我可以解决输入到键盘的不对中问题。
.iOS-fix {
    position: fixed;                            // causes jitter on scroll, but resolves fixed input alignment bug
    /*position: sticky;                         // no jitter, but doesn't resolve fixed input alignment bug*/
    /*transform: translate3d(0, 0, 0);          // no jitter + resolves fixed input alignment, BUT loses fixed position on children (like .rn-drawer)*/
    overflow-y: scroll;
    height: 100%;
    width: 100%;
}

但是滚动条上有一个非常糟糕的抖动/结巴,经过一些研究,我相信解决这个问题的方法是通过应用enter image description here来强制css中的gpu加速。
好的,这解决了这个抖动和固定的输入对齐问题,但是现在postion:fixed;上的.rn-drawer不再适用;因为转换改变了子元素的坐标系(因此我的抽屉没有固定)。
position: sticky;停止抖动,但与输入不对中的问题相同。
是否有任何可行的解决方案,将解决输入对齐错误,但也允许我的输入容器是固定的,不会造成任何滚动抖动?
谢谢。



Best Answer-推荐答案


我对模态也有类似的问题。我发现这篇文章可能有帮助:https://hackernoon.com/how-to-fix-the-ios-11-input-element-in-fixed-modals-bug-aaf66c7ba3f8。不过,在imo看来,这3个建议的修复方法都不够好。
有趣的是,这个问题复制了iOS Safari,Chrome,但不是Dolphin…

关于ios - iOS 11修复了滚动输入错误+抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47084104/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4