iphone sticky menu jquery onscroll ios 9



此代码在更新到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),所以让我们希望他们做出更新来补救这个问题。

最新更新