3 回答
TA贡献1798条经验 获得超7个赞
这是我的问题的完整答案。我最初将@Colin Williams的回答标记为正确的答案,因为它帮助我找到了完整的解决方案。社区成员@Slipp D. Thompson在我问了大约2。5年后编辑了我的问题,并告诉我,我正在滥用SO的问答形式。他还告诉我要另外发布这个答案。所以这是解决我问题的完整答案:
@Colin Williams,谢谢!您的答案和您链接的文章让我领导尝试使用CSS。
所以,我之前使用的是translate3d。它产生了不必要的结果 基本上,它会切断屏幕外的RENDER元素,直到我与它们交互。所以,基本上,在横向方向,我的网站的一半是在屏幕外没有显示。这是一个iPad网络应用程序,因为我正在修复。
将translate3d应用于相对定位的元素解决了这些元素的问题,但其他元素在屏幕外停止渲染。除非我重新加载页面,否则我无法与之交互的元素(图稿)将永远不会再渲染。
完整的解决方案:
*:not(html) {
-webkit-transform: translate3d(0, 0, 0);
}
现在,虽然这可能不是最“有效”的解决方案,但它是唯一有效的解决方案。使用时,Mobile Safari不会渲染屏幕外的元素,有时也会呈现不规则的元素-webkit-overflow-scrolling: touch。除非translate3d应用于因滚动而可能在屏幕外的所有其他元素,否则这些元素将在滚动后被切断。
所以,再次感谢,并希望这有助于其他一些失去的灵魂。这肯定帮了我很大的时间!
TA贡献1906条经验 获得超3个赞
针对除html之外的所有元素: *:not(html) 在我的案例中引起了其他元素的问题。它修改了堆叠上下文,导致一些z-index中断。
我们应该更好地尝试定位正确的元素并仅适用-webkit-transform: translate3d(0,0,0)于它。
编辑:有时候translate3D(0,0,0)不起作用,我们可以使用以下方法,瞄准正确的元素:
@keyframes redraw{
0% {opacity: 1;}
100% {opacity: .99;}
}
// ios redraw fix
animation: redraw 1s linear infinite;
- 3 回答
- 0 关注
- 1099 浏览
相关问题推荐
添加回答
举报