在Firefox,iPad和Safari上快速滚动会导致元素消失然后重新出现



我很好奇为什么会这样。它在Firefox和iPad上最明显,但Safari也受到这种影响。

我在两个地方看到过这个。

我有一个背景图片,它是深色的,上面有一个白色容器,占据了屏幕的90%,包含了所有内容。在Firefox和iPad上,如果我滚动得很快,白色就会消失,然后重新出现。

我还有一个导航栏,一旦用户从顶部滚动了 30 像素,它将添加一个具有固定位置的类;它不能以固定的方式开始。在 chrome 上,它将按预期工作,但在 Firefox 和 Safari 上会出现延迟,然后添加菜单。

iPad似乎是由于这个原因:iPad Safari滚动导致HTML元素消失并延迟重新出现(目前尚未测试)

只有当我滚动得非常快时,内容才会消失,但菜单将以常规的滚动速率出现;如果我滚动得非常慢,它将按预期工作。

滚动过程中显示为空白的元素

这是因为有时浏览器的渲染速度不够快,无法跟上滚动。他们不会造成卷轴的卡顿,而是停止撕裂任何东西,直到他们能够赶上。这尤其可能发生在移动设备上,您只需轻弹手指即可快速滚动,但资源相当少。

<小时 />

导航栏滚动事件延迟

这取决于浏览器,但他们再次试图确保快速滚动体验。他们可能会做的一件事是拒绝做昂贵的onscroll活动,直到卷轴大部分结束。我还认为,拒绝做onscroll事件可以让他们做很酷的硬件加速,这超出了我的回答能力。


这篇html5rocks文章是阅读浏览器如何进行硬件加速的有趣起点。

相关内容

  • 没有找到相关文章

最新更新