gpt4 book ai didi

html - Safari 中的 CSS perspective/translateZ 问题

转载 作者:行者123 更新时间:2023-11-27 23:06:36 25 4
gpt4 key购买 nike

第一次使用 perspective 和 translateZ,我在使用 Safari 时遇到了一些问题。

我正在使用代码为我正在构建的站点创建一个简单的视差效果,它在 firefox 和 chrome 中正常工作,但在 safari 中不能正常工作。 Safari 似乎正在向应用透视属性的容器底部添加填充,这在其他提到的浏览器上不会发生。

我查看了 safari 的调试工具,看看是否在任何不应添加的地方添加了任何填充或边距,但情况似乎并非如此。我将在下面附上我的代码来演示,以及一些期望和不期望的行为的图像。

提前干杯。

期望的行为: desired behaviour

不良行为: undesired behaviour

@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>

最佳答案

经过一番摸索,我已经解决了问题,只需将变换和透视原点设置为右下角即可!

Google 的 Paul Lewis 的这份指南非常有帮助!

https://developers.google.com/web/updates/2016/12/performant-parallaxing

关于html - Safari 中的 CSS perspective/translateZ 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58711643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com