【发布时间】:2012-04-06 03:34:30
【问题描述】:
我目前正在为 iPad Safari 开发一个使用 HTML5 和 jQuery 的 Web 应用程序。我遇到了一个问题,其中较大的滚动区域会导致屏幕外的元素在我向下滚动到它们时出现延迟。
我的意思是,如果我有一排在屏幕外的图像(甚至是带有渐变的 div),当我向下(或向上)滚动到它时,预期的行为 是让元素在我滚动到它时出现在屏幕上。
但是,元素不会出现,直到我将手指从屏幕上移开并且滚动条完成所有动画。
这给我造成了一个非常明显的问题,使整个事情看起来波涛汹涌,尽管事实并非如此。我猜 iPad Safari 正在尝试做一些事情来节省内存。有什么办法可以防止这种波动的发生吗?
此外,iPad Safari 究竟想要做什么?
【问题讨论】:
-
这个问题/解决方案帮助我解决了 jPanelMenu 1.3 CSS 转换版本的问题,它使我网站上的所有内容都变得不可见,直到我添加了上面的 sn-p。
-
使用 *:not(html) 会将 translate3d 应用到您网站的所有其他方面,我不推荐。当您向下滚动时,它会导致选项卡中的图像消失,等等,您可能习惯于仅在 3d 图像上看到的错误现在将出现在您网站的其他方面。
-
我有一些
<svg>元素表现出类似的延迟绘图/渲染。不幸的是,@ 987654322@ 导致了各种奇怪的行为,正如@JonathanTonge 指出的那样,可能会发生。但是,仅选择<svg>元素并使用translate3d(0, 0, 0,);似乎解决了我的滚动问题。 -
除了非常具体的用例,这是垃圾。真的搞砸了依赖绝对位置元素的布局。
-
请将答案发布为答案,而不是您的问题中的“编辑”。我知道你最喜欢你的答案,这很好,但 StackOverflow 有一种问答格式,当 Q 与 A 不同时效果最好。
标签: css ios ipad html mobile-safari