为什么页脚在页面滑动后重新定位

时间:2012-02-27 06:32:31

标签: jquery-mobile

我有一个带有固定页眉和页脚的简单页面。当它从page1滑到page2时,页面上的页脚首先显示在page2的内容结束的位置(稍微中间),然后在页面完成后滑动页脚重新定位本身并移动到底部。有什么方法可以避免这种情况吗?

enter image description here

2 个答案:

答案 0 :(得分:0)

在第二页的pageshow事件处理程序中,您可以尝试添加以下代码段:

$.mobile.fixedToolbars.show(true);

答案 1 :(得分:0)

我相信这是JQM中的一个错误。当页面内容短于屏幕大小时会发生这种情况。

我有根据的猜测,为什么会发生:

  • 转换后,JQM触发 updateLayout ,通过隐藏重新计算显示来重新计算页脚位置
  • 使用CSS隐藏工具栏:top属性并将其设置为0
    所以在一个长页面上,要隐藏页脚CSS:top设置为 0 ,将页脚向下推到静态页面流中的位置=文档的结尾。
  • 要显示页脚,JQM会计算您在页面上的位置与屏幕大小和页脚高度的关系,并提供一些CSS:top = -12345px。当页脚可见时,检查Firebug中的CSS-top。

=隐藏:CSS-top = 0
=显示:CSS-top = -1234px

现在,如果你的页面比屏幕高度(屏幕600px,例如200px页面),则通过设置CSS隐藏页脚:top = 0会将其粘贴到页面末尾,它位于屏幕中间200px处。

由于 updateLayout 重新计算页脚位置,因此会隐藏重新计算显示的内容。你有跳跃的页脚。

我已经在Github上完成了对pull请求的修复 - https://github.com/jquery/jquery-mobile/pull/3050

我猜因为工具栏会切换到pos:用JQM 1.1修复。没有人愿意再拉它了。但它仍然有用。