Работа с перспективой и translateZ в первый раз, и у меня возникла небольшая проблема с Safari.
Я использую код для создания простого эффекта параллакса для сайта, который я создаю, который работает правильно в Firefox и Chrome, но не в Safari. Похоже, что Safari добавляет отступы в конец контейнера, к которому применяется атрибут перспективы, что происходит в других упомянутых браузерах.
Я посмотрел в инструментах отладки Safari, чтобы увидеть, добавляются ли какие-либо отступы или поля в любом месте, где их не должно быть, но, похоже, это не так. Я приложу свой код ниже, чтобы продемонстрировать, а также некоторые изображения как желаемого, так и нежелательного поведения.
Приветствия заранее.
Желаемое поведение: ![desired behaviour](https://i.stack.imgur.com/MGThW.png)
Нежелательное поведение: ![undesired behaviour](https://i.stack.imgur.com/leBa5.png)
@import url('https://fonts.googleapis.com/css?family=Staatliches&display=swap');
body,
html {
margin: 0;
padding: 0;
font-family: 'Staatliches', cursive;
-webkit-margin-end: none;
-webkit-padding-end: none;
}
.parallax {
position: fixed !important;
perspective: 1px !important;
width: 100%;
top: 0;
bottom: 0;
overflow-x: hidden !important;
overflow-y: scroll !important;
}
.object-wrapper {
display: block !important;
height: 100vh !important;
width: 100vw !important;
background: none !important;
}
.mix-blend {
// mix-blend-mode:screen;
}
.speed-1 {
-webkit-backface-visibility: hidden;
transform: translateZ(-1px) scale(2);
}
.speed-2 {
-webkit-backface-visibility: hidden;
transform: translateZ(-2px) scale(3);
}
.speed-3 {
-webkit-backface-visibility: hidden;
transform: translateZ(-3px) scale(4);
}
.speed-4 {
-webkit-backface-visibility: hidden;
transform: translateZ(-4px) scale(5);
}
.speed-5 {
-webkit-backface-visibility: hidden;
transform: translateZ(-5px) scale(6);
}
.speed-6 {
-webkit-backface-visibility: hidden;
transform: translateZ(-6px) scale(7);
}
.object {
line-height: 100vh;
font-size: 33.33vw;
text-align: center;
color: black;
}
.object-1 {
position: relative;
top: 0;
left: 0;
height: 100vh;
width: 100vw;
background: white;
}
.object-2 {
position: relative;
top: 0vh;
left: 0;
height: 200vh;
width: 33.33vw;
background: white;
}
.object-3 {
position: relative;
top: -24vh;
left: 33.33vw;
height: 101vh;
width: 33.33vw;
background: white;
}
.object-4 {
position: relative;
top: -66.66vh;
left: 66.66vw;
height: 133.33vh;
width: 33.33vw;
background: white;
}
.object-5 {
position: relative;
top: 0vh;
left: 0;
height: 100vh;
width: 100vw;
background: red;
}
.video {
position: absolute;
top: 0;
left: 0;
height: 100vh;
width: 100vw;
object-fit: cover;
}
<div class="parallax">
<div class="object-wrapper mix-blend speed-1">
<div class="object object-2">
<div class="hero-text">W</div>
</div>
</div>
<div class="object-wrapper mix-blend speed-3">
<div class="object object-3">
<div class="hero-text">C</div>
</div>
</div>
<div class="object-wrapper mix-blend speed-2">
<div class="object object-4">
<div class="hero-text">M</div>
</div>
</div>
<div class="object-wrapper speed-1">
<div class="object object-5">
<div class="hero-text">M</div>
</div>
</div>
</div>