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

标签 css ipad firefox safari

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

我在两个地方看到过。

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

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

iPad 好像是因为这个:iPad Safari scrolling causes HTML elements to disappear and reappear with a delay (暂未测试)

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

最佳答案

元素在滚动期间显示为空白

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


导航栏滚动事件延迟

这取决于浏览器,但他们再次尝试确保快速滚动体验。他们可能做的一件事是拒绝执行昂贵的 onscroll 事件,直到滚动基本结束。我还相信,拒绝执行 onscroll 事件可以让他们进行超酷的硬件加速,这超出了我的回答能力。


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

关于css - 在 Firefox、iPad 和 Safari 上快速滚动会导致元素消失然后重新出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43007339/

相关文章:

css3 动画不适用于移动 chrome

html - 子菜单文本颜色无法在 Wordpress 站点中更改

html - Chrome 中自定义字体的额外填充或边距

ios ipad uibutton 在键盘显示后无响应

iphone - 当应用程序已经上传时,ios 更改标签 itunesconnect

iphone - NSTimer 是否受处理器速度、不同代 iPhone 等的影响

css - 如何在 material ui REACTjs 中覆盖 menuItem 中的选定类?

css - @-moz-document url-prefix() 有什么作用?

google-chrome - 基本身份验证用户名中的特殊字符不适用于 Chrome,但适用于 IE 和 Firefox

javascript - Firefox 扩展中的 IP 地址查找