gpt4 book ai didi

html - 仅 CSS 视差滚动停止与 IOS/IPadOS 13 一起使用?

转载 作者:行者123 更新时间:2023-12-03 13:40:11 26 4
gpt4 key购买 nike

好的,所以我在 Web 开发的世界里还是个新手。几个月前,我用 Css only Parallax Scrolling 完成了我自己的网站。 IOS13 出现了一些问题。

对于视差效果,我使用了 Keith Clark 的描述。 .一切都很顺利。它涵盖了桌面和移动设备上的几乎所有浏览器。

但是,对于新的 IOS13,CSS-Only-Parallax Effect停止工作。我做了很多研究,但我无法弄清楚。

有可能解决这个问题吗?
你们会怎么做?

/* Parallax base styles
--------------------------------------------- */

.parallax {
height: 500px; /* fallback for older browsers */
height: 100vh;
overflow-x: hidden;
overflow-y: auto;
-webkit-perspective: 300px;
perspective: 300px;
}

.parallax__group {
position: relative;
height: 500px; /* fallback for older browsers */
height: 100vh;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}

.parallax__layer {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}

.parallax__layer--fore {
-webkit-transform: translateZ(90px) scale(.7);
transform: translateZ(90px) scale(.7);
z-index: 1;
}

.parallax__layer--base {
-webkit-transform: translateZ(0);
transform: translateZ(0);
z-index: 4;
}

.parallax__layer--back {
-webkit-transform: translateZ(-300px) scale(2);
transform: translateZ(-300px) scale(2);
z-index: 3;
}

.parallax__layer--deep {
-webkit-transform: translateZ(-600px) scale(3);
transform: translateZ(-600px) scale(3);
z-index: 2;
}


/* demo styles
--------------------------------------------- */

body, html {
overflow: hidden;
}

body {
font: 100% / 1.5 Arial;
}

* {
margin:0;
padding:0;
}

.parallax {
font-size: 200%;
}

/* centre the content in the parallax layers */
.title {
text-align: center;
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}



/* style the groups
--------------------------------------------- */

#group1 {
z-index: 5; /* slide over group 2 */
}
#group1 .parallax__layer--base {
background: rgb(102,204,102);
}

#group2 {
z-index: 3; /* slide under groups 1 and 3 */
}
#group2 .parallax__layer--back {
background: rgb(123,210,102);
}

#group3 {
z-index: 4; /* slide over group 2 and 4 */
}
#group3 .parallax__layer--base {
background: rgb(153,216,101);
}

#group4 {
z-index: 2; /* slide under group 3 and 5 */
}
#group4 .parallax__layer--deep {
background: rgb(184,223,101);
}

#group5 {
z-index: 3; /* slide over group 4 and 6 */
}
#group5 .parallax__layer--base {
background: rgb(214,229,100);
}

#group6 {
z-index: 2; /* slide under group 5 and 7 */
}
#group6 .parallax__layer--back {
background: rgb(245,235,100);
}

#group7 {
z-index: 3; /* slide over group 7 */
}
#group7 .parallax__layer--base {
background: rgb(255,241,100);
}
<!doctype html> 
<html>
<head>
<meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<title>Unbenanntes Dokument</title>
<link href="parallax2.css" rel="stylesheet" type="text/css">
</head>

<body>
<div class="parallax">

<div id="group1" class="parallax__group">
<div class="parallax__layer parallax__layer--base">
<div class="title">Base Layer</div>
</div>
</div>

<div id="group2" class="parallax__group">
<div class="parallax__layer parallax__layer--base">
<div class="title">Base Layer</div>
</div>
<div class="parallax__layer parallax__layer--back">
<div class="title">Background Layer</div>
</div>
</div>

<div id="group3" class="parallax__group">
<div class="parallax__layer parallax__layer--fore">
<div class="title">Foreground Layer</div>
</div>
<div class="parallax__layer parallax__layer--base">
<div class="title">Base Layer</div>
</div>
</div>

<div id="group4" class="parallax__group">
<div class="parallax__layer parallax__layer--base">
<div class="title">Base Layer</div>
</div>
<div class="parallax__layer parallax__layer--back">
<div class="title">Background Layer</div>
</div>
<div class="parallax__layer parallax__layer--deep">
<div class="title">Deep Background Layer</div>
</div>
</div>

<div id="group5" class="parallax__group">
<div class="parallax__layer parallax__layer--fore">
<div class="title">Foreground Layer</div>
</div>
<div class="parallax__layer parallax__layer--base">
<div class="title">Base Layer</div>
</div>
</div>

<div id="group6" class="parallax__group">
<div class="parallax__layer parallax__layer--back">
<div class="title">Background Layer</div>
</div>
<div class="parallax__layer parallax__layer--base">
<div class="title">Base Layer</div>
</div>
</div>

<div id="group7" class="parallax__group">
<div class="parallax__layer parallax__layer--base">
<div class="title">Base Layer</div>
</div>
</div>

</div>
</body>
</html>

最佳答案

我遇到了同样的问题。 Chris Coyier from CSS-Tricks also wrote about it .

据我所知,没有办法解决这个问题。据我所知,从 iOS 13 开始不再支持 translateZ。

最令人沮丧的是,似乎没有办法检测到这种行为。 CSS.supports('transform', 'translateZ(10px)') 仍然返回“true”。通过 JS 读取的每一个值似乎都表明一切正常,但实际上并非如此。

我的印象是网站正常呈现(使用 translateZ 工作)。但是后来,iOS 13 中的这种“更正”以某种方式应用到了事实之后——超出了网站代码的范围。

关于html - 仅 CSS 视差滚动停止与 IOS/IPadOS 13 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58409202/

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