mishe / blog

前端碰上的问题或体会
230 stars 39 forks source link

IOS 下的水平多页面切换bug #102

Open mishe opened 8 years ago

mishe commented 8 years ago

自从ios升级到9之后, 移动端页面的水平多页面切换就莫名其妙的多了一个BUG

先看代码结构

<div class="page1">
</div>
<div class="page2">
</div>
<div class="page3">
</div>
.page1{position:absolute;top:0;left:0;width:100%;transform:translate3d(-100%,0,0)}
.page2{position:absolute;top:0;left:0;width:100%}
.page3{position:absolute;top:0;left:0;width:100%;transform:translate3d(100%,0,0)}

在chrome模拟器中,一起都是正常的显示正常,一般都是只显示page2,然后等待页面切换的时候,把page1或者page3给移动到正常位置就完成了切换;

但自从ios9之后,这个方案已经不能正常工作了,在ios9下,会把3个page全部显示在当前的窗口;

解决的方案

不修改代码的结构,但page1和page3都是动态的生成,不在是正常的占位;

而且需要给这些page增加一个外框;外框做一件事情,就是固定窗口的大小,然后设置overflow:hidden