【发布时间】:2013-09-05 14:21:47
【问题描述】:
我没有这方面的代码,因为这更像是一个概念问题。
我有一个 jquery 移动页面,它的内容顶部有一个部分,我想将其放置在视口上方。我所做的是设置一个与此部分的高度相等的静默滚动,这使得窗口滚动到我想要隐藏的部分的正下方。
我现在遇到的问题是,在页面加载和显示到引发静默滚动之间,有一瞬间能够看到要隐藏的部分,这使得页面看起来有问题您可以看到silentscroll 跳跃了100-sum 像素以隐藏该部分。这显然是因为静默滚动是在页面显示后执行的。
有没有办法将滚动顶部设置为 jquery mobile 以便在显示页面之前执行它,最好是在抛出 pagebeforeshow 事件时执行?据我所知,这个事件是在所有jquery移动小部件初始化之后抛出的,那么这个时候就不能在window上设置scrollTop吗?
我要做的是在页面显示之前在窗口上设置 scrollTop 值,这样用户就不必看到页面跳转了。
我自己无法正确设置,我想知道这是否可能发生。
这是我正在尝试重新创建的设置的快速图像。绿色方块是我想要“隐藏”的部分,位于窗口上方。蓝色方框代表移动窗口,灰色方框代表文档。
编辑:我检查了移动浏览器; Safari 在纠正静默滚动时没有跳跃/抖动。 IOS 上的 Chrome 手机确实有跳转/抖动,不知道是浏览器性能的问题,还是它对 DOM/viewport 变化进行排队的方式...
【问题讨论】:
-
不,我认为这不可能。您可以隐藏您的 html ,设置滚动顶部并再次显示您的 html。
-
Vimeo 对video pages 具有此效果,以显示该创作者的更多视频。可能值得调查一下他们是如何做到的。
-
桌面版 Vimeo 可以,但移动版没有此功能。
-
@Prusprus 我在 Chrome 中使用 nexus 7 Android 4.3,它对我来说运行良好。移动对您来说意味着什么?
-
我正在检查 CrIOS 和 safari mobile。我承认我不清楚使用的手机,但我自己还没有在 Android 上尝试过。它在我的 IOS 上的 Safari 上运行良好,但在 chrome 上却不行。
标签: jquery jquery-mobile mobile