jQuery Mobile - 在页面过渡之前跳转到顶部

5

有没有遇到这样的问题:在页面进行过渡之前,页面会快速跳转到顶部(固定位置的标题看起来好像丢失了一半)?

返回页面时,页面会回到顶部,但由于我正在处理一个长列表,最好让它停留在上一页离开的地方。

如果可能的话,我使用页面内的div而不是实际的独立页面,这可能会导致这种情况。

欢迎分享任何技巧!

3个回答

6

3
我遇到了和发帖者完全相同的问题,但这种方法对我没有起作用。你有什么想法吗? - fishbaitfood
重要提示:与其他$ .mobile.*变量不同,您必须在mobileinit触发后执行此操作。 - Anthony
1
这个方法确实可以回到相同的位置,但在页面转换之前仍然会出现可见的页面跳动。 - Joe's Ideas
同样的问题。这个 bug(从终端用户的角度来看)阻止了我多年使用 jQuery Mobile。它从未被解决过。 - Bob
1
对我有用,记住,如果您喜欢,可以通过在文档准备绑定中将$.mobile.defaultHomeScroll设置为0来禁用此行为,该绑定应在jquery mobile javascript包含在文档中之后添加。 - MSD

2
这是一个已知的问题,可能会在jQuery Mobile 1.1中进行重构。问题在于,为了将页面转换动画到另一页,viewport必须位于页面顶部,以使当前页面和正在过渡的页面在垂直方向上对齐。
如果您在一个长列表的页面上(例如1000px),并且要转移到的页面只有几百像素高,则当前页面将正确地动画到屏幕外,但新页面将不可见,因为它在视口之上。
我通过使用iScroll来解决这个问题,用于滚动区域。这样,所有页面都占据视口的100%宽度/高度,不会发生在转换之前滚动到顶部的情况。

感谢您的回答。我们故意避免使用iScroll,因为它的性能不如本地滚动。我想这要么是一个跳跃的界面,要么是不太理想的滚动。 - Don H
@DonH,我们刚找到了一个解决方案。请查看回复。 - Crashalot

2
我们已经遇到过这种情况很多次了。我们的解决方案是确保所有页面的高度与屏幕高度完全相同。如果您的内容比屏幕更长,则放在可滚动的DIV容器中。如果您的目标是iOS 4及以下版本,则需要像iScroll这样的库来使DIV可滚动,因为overflow: scroll(或auto)无法正常工作。 完成此操作后,您可以在页面之间平稳地过渡。

2
那么,即使使用jQuery Mobile,iScroll也是必须的才能实现平滑的过渡效果吗?我原以为jQuery Mobile会涵盖我所有的移动UI需求,可惜了。 - fishbaitfood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接