此代码在更新到iOS 9.0.1 (13A404)之前在我的iphone上运行良好,
但现在相同的代码似乎只在手指释放后工作,
或jQuery onscroll
结束后,当我做一个快速滑动离开页面滚动…
$(document).on('scroll', function(){
if( $(this).scrollTop() > 0){
$('.menu').addClass('sticky');
}else{
$('.menu').removeClass('sticky');
}
});
粘性菜单只是消失,直到我释放手指从屏幕上,失去了"粘"的效果在实时的滑动期间,我之前在我所有的网站,现在坏了…
如何解决这个问题,使它们像我以前那样工作?(实时平滑粘接)
在观察了相同的行为并进行了一些测试之后,最简单的方法是激活类似问题中提出的3D转换:
.sticky-element {
-webkit-transform: translate3d(0px,0px,0px);
}
我看到了同样的行为。似乎iOS9不想在滚动事件结束之前绘制position: fixed元素
示例:http://senaeh.de/demo/stickyheaders/simple/
新的粘头将不会显示,直到页面停止滚动或用户从屏幕上移开他们的手指。其他CSS的更改,如背景颜色,他们应该工作。
这是一个倒退,因为iOS8完全允许这样做。不幸的是,Sticky头在ios9.0.1中并不平滑。它们在老旧的安卓设备上仍然运行良好,所以我不确定这是一个bug还是苹果试图延长电池寿命。
编辑:我向苹果提交了一个bug(#22902083),所以让我们希望他们做出更新来补救这个问题。