我目前正在与 Safari 上的一个非常令人沮丧的错误作斗争,我不知道还能去哪里。
似乎大多数将触发事件的元素(但不是全部,我无法辨别差异因素)focus
会导致页面上所有被转换或动画的元素跳到顶部和左侧约 2px。这只发生在页面加载后的第一个焦点事件上。
看到这个 bug 有点烦人,因为它在droplr.com的登录部分中,而且我完全无法在 JSFiddle 上提炼出一个更简单的案例。
如果您有/创建一个帐户并登录,请单击此编辑图标进行下拉:
你会在页面的第一个焦点上看到,抖动。这是页面上有一个单一的拖放并且我触发对违规元素的关注时的时间线:
随着更多的滴,它只是更多的相同,但它似乎最多大约 40 油漆。探查器并没有提出任何邪恶的建议。只是一次浏览 jQuery 内部结构。
translate3d
如果不是通过or来布置元素matix3d
,我只是使用top
and left
,这个错误就消失了。经过数小时的调试,我完全不知所措。
希望有人看到类似的东西,可以看看,或者可以给我关于调试下一步的建议。
非常感谢!
更新: Dave Desandro建议是 3d 加速开始了,所以我用 atranslate
代替了它,果然,这并没有引起抖动。我不知道为什么硬件加速会随着一个focus
事件而启动,而且只有一次。
我已经尝试在页面加载时将 transformZ 设置为 0 以继续并提升硬件,但也没有运气。欢迎任何更多的想法。