jQuery Mobile Page Resizing在加载后可见

时间:2013-09-09 17:16:55

标签: html css jquery-mobile

更新 我已经跟踪了pageBeforeHide和pageBeforeShow事件之间的错误。在这些事件之间,添加和删除类.ui-overlay-c。这些CSS类如下所示:

.ui-body-c,
.ui-overlay-c {
border: 1px solid       #aaa /*{c-body-border}*/;
color:                  #333 /*{c-body-color}*/;
text-shadow: 0 /*{c-body-shadow-x}*/ 1px /*{c-body-shadow-y}*/ 0 /*{c-body-shadow-radius}*/ #fff /*{c-body-shadow-color}*/;
background:             #f9f9f9 /*{c-body-background-color}*/;
background-image: -webkit-gradient(linear, left top, left bottom, from( #f9f9f9 /*{c-body-background-start}*/), to( #eee /*{c-body-background-end}*/)); /* Saf4+, Chrome */
background-image: -webkit-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* Chrome 10+, Saf5.1+ */
background-image:    -moz-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* FF3.6 */
background-image:     -ms-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* IE10 */
background-image:      -o-linear-gradient( #f9f9f9 /*{c-body-background-start}*/,     #eee /*{c-body-background-end}*/); /* Opera 11.10+ */
background-image:         linear-gradient( #f9f9f9 /*{c-body-background-start}*/,     #eee /*{c-body-background-end}*/);
}
.ui-overlay-c {
background-image: none;
border-width: 0;
}

/更新

我正在开发一个触摸屏网站并使用jQueryMobile库。该网站的设计运行速度为1366px x 768px但不小。

大多数东西都在浏览器上运行,但我遇到了一个在转换期间发生的讨厌的错误。页面宽度为99.55%,所有边缘均采用纯白色10px边框。在转换期间,页面缩小约40px(仅从右侧),然后在加载新页面时,该页面也缩小,直到展开以填充适当的宽度。

我猜这是由于jQueryMobile转换的性质,但我无法阻止它发生。

您可以在此处at this link看到此效果,只需点击一次,然后点击任意导航项。它应该在第一次点击后收缩和扩展。

jQM的工作方式,有一个移动视口包装器,它使用以下css:

top: 0;
left: 0;
width: 100%;
min-height: 100%;
position: absolute;
display:none;
border: 0;

在页面之间转换期间,沿移动视口包装器应用以下样式:

width: 100%;
height: 100%;
overflow: hidden;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;

在此视口中,有单独的页面(.ui-page),每个页面都包含以下css:

top: 0;
left: 0;
min-height: 100%;
position: absolute;
display: none; // overridden to display:block when the page is loaded
border: 0;
padding: 0;
margin: 0;

以下是我在页面级别与.ui-page:

一起应用的自定义样式
color: black !important;
background-image: none !important;
background-color: #ddd2cc !important;
border: 10px solid white !important;
padding: 20px !important;
width: 95.55% !important;

我对jQueryMobile CSS内部知识有限,但是有关如何阻止页面扩展/收缩的任何指导都会有所帮助。我的直觉告诉我,问题是由于我的css覆盖jQM css并在页面加载后应用填充,导致用户能够看到此填充添加。

1 个答案:

答案 0 :(得分:2)

最简单的修复:

$.mobile.maxTransitionWidth = 320;

jQM在大视口大小时不能很好地处理页面转换。把它们关掉,这个bug就消失了。