我偶然发现Firefox(64.0.2)中对CSS transforms
的一个看似任意的限制。当translateY
> 8947848px时,似乎无法呈现变换后的元素。请参见以下pen或以下代码段(以FF为单位):
window.scrollTo(0, 8947848);
.container {
background: dodgerblue;
display: flex;
width: 100vw;
height: 10000000px;
overflow: auto;
}
.transformed {
width: 200px;
height: 200px;
background: green;
transform: translateY(8947848px);
color: white;
padding: 20px;
}
.too-much {
background: tomato;
transform: translateY(8947849px);
}
<div class="container">
<div class="transformed">
<pre>translateY(8947848px)</pre> Visible in Firefox.
</div>
<div class="transformed too-much">
<pre>translateY(8947849px)</pre> Not visible in Firefox.
</div>
</div>
Chrome(预期行为):
Firefox:
我知道可以使用position: absolute
和top: 8947849px
完成此操作,但是我试图在包含的应用程序中尽可能提高性能,所以我想坚持使用compositor-only transform
的属性会经常更改。
我的问题是,在Firefox中是否可以解决8947849px以上的翻译问题?