css - 在 iPhone/iPad 上滚动时边栏导航菜单闪烁

标签 css iphone scroll menu overflow

自从最新的 iPhone/iPad 更新后,边栏导航菜单在上下滚动时会闪烁。

我一直在尝试很多方法,但没有一个真正有效。

第一次尝试是在菜单打开时防止滚动(正文):

.overflow {
   position:relative;
   overflow:hidden;
   height:100%;
}

不幸的是,这并不能解决问题,所以我尝试了这个:

.overflow {
   position:fixed;
   overflow:hidden;
   height:100%;
}

这行得通,但是当用户打开菜单时,页面会跳到顶部,地址栏也会出现。 IMO 不是一个好的用户体验。

我还尝试将其添加到几个元素中:

div {
   -webkit-backface-visibility: hidden; /* Chrome, Safari, Opera */
           backface-visibility: hidden;
} 

所以,现在我要么尝试用固定位置的方法解决它,要么尝试避免闪烁。我不知道为什么,但“溢出:隐藏”在 iPhone 上并没有真正起作用。

有人对此有很好的解决办法吗?

最佳答案

这与“过渡”有关。例如。不要使用“translateX()”...使用 translate3d() 启用硬件加速并将其添加到动画包装器中。解决了我的问题:

.animClass {
   -webkit-transform: translate3d(0, 0, 0);
   -webkit-backface-visibility: hidden;
   -webkit-perspective: 1000;
}

感谢: https://davidwalsh.name/translate3d

关于css - 在 iPhone/iPad 上滚动时边栏导航菜单闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35814962/

相关文章:

objective-c - 停止 tableviewcontroller 滚动

javascript - 跳转到网页部分时暂时突出显示 html 元素

当添加一个 div 时,html 事情变得糟糕

iphone - 如何创建自定义 UIViewController 过渡动画?

iphone - 按下按钮时显示 tableView - iOS

iphone - 如何让 UITableview 在重新加载时转到页面顶部?

javascript - 防止 div 被其下方的 div 碰撞时向上滚动?

html - Bootstrap 3 中的 3 列全屏应用程序布局

html - 根据背景图像中心的屏幕尺寸水平/垂直组织图像

html - 两个 div 并排并清除第三个 div 的 flex