这部分代码应该显示具有多个重叠图像的区域。每个图层都有一组图像选项,因此可以混合图层。
问题: 我对 Chrome 中的这些重叠图像有疑问。它们是绝对定位的,并且具有设置的 z-indexes。它们在“正常”浏览器大小中按预期显示,但是当增加这些图像的区域时,一些会消失并显示白色块。这只发生在 Chrome 中。我想确保这是大型显示器的未来证明。
我正在使用带有 -webkit-transform: translateZ(0) 的 GPU 加速来加速应用程序。删除它会使所有图层即使在 chrome 中的大窗口大小上也能显示。但是,这会减慢应用程序的速度,并且不能解决整个问题。这让我想保持转换翻译。当transform translate关闭时,图层图像仍然会消失并在切换(甚至是一些未切换的图层)图像时显示白色。
只有当前显示的图像层包含在 DOM 中,并且当切换一个时,刚刚最近的图像层的克隆显示在前面,而在后面加载新选择的图像层。
大屏幕上的图像尺寸为 2048 x 1344 像素,并缩放以适应窗口(但不能超出此范围)。我认为这在性能方面可能会很重,但它在 Firefox 和 IE 中完美运行。我很感谢任何回应。
HTML
<div class="container">
<div id="layer-1" class="layer" style="z-index: 1;">
<div class="layer-option" style="background-image: url(layer1-option1.png);"></div>
<div class="clone" style="background-image: url(layer1-option1.png);"></div>
</div>
<div id="layer-2" class="layer" style="z-index: 2;">
<div class="layer-option" style="background-image: url(layer2-option1.png);"></div>
<div class="clone" style="background-image: url(layer2-option1.png);"></div>
</div>
<div id="layer-3" class="layer" style="z-index: 3;">
<div class="layer-option" style="background-image: url(layer3-option1.png);"></div>
<div class="clone" style="background-image: url(layer3-option1.png);"></div>
</div>
<div id="layer-4" class="layer" style="z-index: 4;">
<div class="layer-option" style="background-image: url(layer4-option1.png);"></div>
<div class="clone" style="background-image: url(layer4-option1.png);"></div>
</div>
<div id="layer-5" class="layer" style="z-index: 5;">
<div class="layer-option" style="background-image: url(layer5-option1.png);"></div>
<div class="clone" style="background-image: url(layer5-option1.png);"></div>
</div>
<div id="layer-6" class="layer" style="z-index: 6;">
<div class="layer-option" style="background-image: url(layer6-option1.png);"></div>
<div class="clone" style="background-image: url(layer6-option1.png);"></div>
</div>
<div id="layer-7" class="layer" style="z-index: 7;">
<div class="layer-option" style="background-image: url(layer7-option1.png);"></div>
<div class="clone" style="background-image: url(layer7-option1.png);"></div>
</div>
<div id="layer-8" class="layer" style="z-index: 8;">
<div class="layer-option" style="background-image: url(layer8-option1.png);"></div>
<div class="clone" style="background-image: url(layer8-option1.png);"></div>
</div>
<div id="layer-9" class="layer" style="z-index: 9;">
<div class="layer-option" style="background-image: url(layer9-option1.png);"></div>
<div class="clone" style="background-image: url(layer9-option1.png);"></div>
</div>
</div>
CSS
.layer {
background-repeat:no-repeat;
position: absolute;
width: 100%;
height: 100%;
bottom: 0;
top: 0;
background-size:100%;
-webkit-transform: translateZ(0);
}
.layer layer-option {
position: absolute;
width: 100%;
height: 100%;
background-repeat:no-repeat;
background-size:100%;
-webkit-transform: translateZ(0);
}