滚动时在iOS设备上,元件的z索引不工作(While scrolling on an iOS dev

2019-08-31 07:56发布

我的布局是相当简单的,重复的背景元素,一对夫妇的垂直空间(道路)和一些水平桥和一点点车应该推动它们下面的滚动时的。

一切工作就好了我的Mac上,但在iOS设备上测试-My设备:iOS上的iPhone 4在iOS 6.1,iPad 2的6.1.3-的z-index不被尊重时,滚动事件激活。

这意味着,当你滚动的汽车,这是position: fixedwindow ,是过了桥移动(具有较高z-index比“汽车”),而不是z-index使桥式更高,因为它应该是在非iOS的浏览器,这使得桥下的车程。

这似乎是一个简单的分层问题,但即使有一个非常简单的测试案例的缺陷是仍然明显。

测试用例: http://plnkr.co/EAE5AdJqJiuXgSsrfTWH (在iPad上全屏视图,以避免iframe中滚动问题,它是不相关的演示内容)

有谁知道什么地方错了,这将导致代码z-index不工作时滚动处于活动状态?

注意:这发生在两个版本,Chrome for iOS和本地移动Safari浏览器。


下面是对运行中的码位减少测试用例我上方连结在壳体有人可以指出的修复,而无需打开演示。


HTML:

<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
  </head>

  <body>
    <div class="car"></div>

    <div class="street"></div>
    <div class="bridge"></div>
    <div class="street"></div>
    <div class="bridge"></div>
    <div class="street"></div>
    <div class="bridge"></div>
    <div class="street"></div>
    <div class="bridge"></div>
    <div class="street"></div>
    <div class="bridge"></div>
    <div class="street"></div>
    <div class="bridge"></div>
    <div class="street"></div>
  </body>

</html>

CSS:

body {
  /* Adds the 'road' as a background image. */
  background: #8BA341 url("http://f.cl.ly/items/1r2g152h2J2g3m1e1V08/road.png") repeat-y top center;
  margin:     0;
  padding:    0;
} 

.car {
  /* The car's position is fixed so that it scrolls along with you. */
  position:   fixed;
  top:        5%;
  left:       52%;
  width:      220px;
  height:     330px;
  background: #BD6C31;
  z-index:    1;
}
.street {
  /* Empty in the example, just used to space things out a bit. */
  position:   relative;
  height:     500px;
}
.bridge {
  /* A bridge crossing the main road. The car should drive under it. */
  position:   relative;
  height:     353px;
  /* Image of repeating road. */
  background: url("http://f.cl.ly/items/0u0p2k3z45242n1w3A0A/bridge-road.png") repeat-x center left;
  /* Higher z-index than car. */
  z-index:    2;
}

Answer 1:

我相信我已经多次试验和错误后解决了这个。 我所做的就是添加一个webkit transform的桥梁。 这允许正的z索引号(汽车10,在坑洼1,桥20):

新的CSS:

.bridge {
  -webkit-transform: translate3d(0,0,0);
}

添加翻译成不同的桥梁似乎不仅从之前修复闪烁,而且还可以让你没有任何延迟,立即滚动。

检查它在全屏或全Plunker 。 在测试了iPad等iOS 6.0.1。



文章来源: While scrolling on an iOS device, the z-index of elements isn't working