iphone粘性菜单jquery onscroll ios 9

时间:2015-09-28 17:52:44

标签: css webkit css-position ios9 fixed

此代码在我的iphone上运行正常,然后更新为 iOS 9.0.1 (13A404),但现在相同的代码似乎只能在手指释放后工作,
或jQuery onscroll结束后,当我快速滑动离开页面滚动...

$(document).on('scroll', function(){
    if( $(this).scrollTop() > 0){
        $('.menu').addClass('sticky');
    }else{
        $('.menu').removeClass('sticky');
    }
});

粘性菜单消失,直到我从屏幕上释放手指,失去了"粘贴"在我所有的网站上刷过之前实时的效果,现在已经破了......

如何解决这个问题让他们像以前一样工作? (实时光滑粘贴)

2 个答案:

答案 0 :(得分:9)

在观察相同的行为并稍微测试之后,最简单的方法是激活3D变换as proposed in a similar question

.sticky-element {
   -webkit-transform: translate3d(0px,0px,0px);
}

答案 1 :(得分:1)

我看到了同样的行为。 iOS9似乎不想绘制位置:固定元素,直到滚动事件结束。

示例:http://senaeh.de/demo/stickyheaders/simple/

在页面停止滚动或用户将手指从屏幕上移开之前,新的粘性标题将不会显示。其他CSS更改,例如背景颜色应该工作。

这是一个回归,因为iOS8完全允许这一点。不幸的是,从ios9.0.1开始,粘性标题不顺畅。它们仍然适用于老旧的Android设备,所以我不确定这是一个错误,还是Apple试图增加电池续航时间。

编辑:我向Apple提交了一个错误(#22902083),所以我们希望他们做出更新来解决这个问题。