Ваш .left-panel
имеет более высокий z-индекс, поэтому он перекрывает изображение внутри .right-panel
. И z-index
создает новый контекст стека , который предотвращает взаимную блокировку изображений. По сути, z-индекс относится к контексту стека, а не к абсолютному числу.
Я бы порекомендовал вам структурировать z-индексы таким образом, чтобы фоны панели имели одинаковый z-индекс, а изображения имели более высокий один (по сути, создавая 3 слоя: контент, фон обложки, изображения обложек).
Для этого вам нужно реорганизовать разметку так, чтобы фон представлял собой одноуровневый элемент каждой панели. изображения, такие что z-index
не влияет на изображения ». Вы можете сделать это с реальным элементом, но я продемонстрирую, используя ::before
:
body {
overflow: hidden;
}
.curtain {
width: 100vw;
height: 100vh;
overflow: hidden;
z-index: 0;
/* CSS variables to prevent duplication below */
--piece-width: 100px;
}
.curtain .content {
/* I used flex since I'm more comfortable with that, but you can use floats if you prefer. */
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
z-index: 0;
}
.curtain-panel {
display: flex;
align-items: center;
position: absolute;
width: 50%;
height: 100%;
transition: left, right;
transition-duration: 3s;
}
.curtain-panel.left {
left: 0;
justify-content: end;
}
.curtain-panel.right {
right: 0;
}
.curtain-panel::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
background-color: #333;
}
.curtain-piece {
width: var(--piece-width);
height: auto;
z-index: 2;
margin: calc(var(--piece-width) / -2);
}
.curtain:hover .left {
left: -100%;
}
.curtain:hover .right {
right: -100%;
}
<div class="curtain">
<div class="curtain-panel left">
<img src="https://i.ibb.co/30TCGB3/logo-top.png" class="curtain-piece">
</div>
<div class="curtain-panel right">
<img src="https://i.ibb.co/GFCwpF0/logo-bottom.png" class="curtain-piece">
</div>
<div class="content">
<p>main site stuff</p>
</div>
</div>
Кроме того, вы не можете использовать transform
на панелях, так как это также создает контекст стека. Я настоятельно рекомендую вам прочитать страницу, на которую я ссылаюсь, чтобы лучше понять ее, если хотите.