2012-01-09 50 views
0

Gray dead spacejQuery Mobile的 - 灰色死角(图)

链接到我的应用程序:http://gizeto.com/app_orange/index.html

我不明白为什么这发生在orientationchange。有人认识到这一点吗?

+0

好像你的模板的高度短垂直,它的好的,如果我水平翻转手机。你如何处理这个?你可以发布一些HTML吗? – MilkyWayJoe 2012-01-09 19:36:09

+0

我没有处理从portait到风景的任何转换,我以为jQuery处理了这个?我所做的一切都是从美乐家创建一个主题并实施它。背景只是我猜想的一种颜色,没有图像或其他。 – 2012-01-09 19:37:24

+0

我不知道在你的情况下是否可能,但我会从jquery mobile查看'orientationchange'事件,然后修改你的尺寸。这是一个很好的示例:http://www.roccles.com/?p = 140 – MilkyWayJoe 2012-01-09 19:43:36

回答

0

看起来好像您正在使用iScroll作为您的可滚动区域。如果是这种情况,那么你将需要更新iScroll实例每当window对象上的resizeorientationchange事件触发:

var myScroll = new iScroll(); 

//you can change `resize` to `orientationchange` if you only want to support mobile devices 
$(window).bind('resize', function() { 
    myScroll.refresh(); 
}); 

来源:http://cubiq.org/iscroll-4#refreshmethod

这应保持iScroll区域的正确文档大小发生变化时的尺寸。如果iScroll容器(在你的情况,这是data-role="content"元素)仍然没有更新它的高度,那么你可能需要做手工:

$(window).bind('resize', function() { 
    $.mobile.activePage.children('[data-role="content"]').height('{HEIGHT HERE}px'); 
    myScroll.refresh(); 
}); 
+0

谢谢你的回答。在做你提出的建议时,我最终以http://gizeto.com/app_orange结束 - 背景似乎占据了一切。正如你在我的代码中看到的,我使用$(document).delegate('#start','pageinit',function(){})在我的page-div中进行绑定。那是对的吗?我做错了什么,但我们似乎开车在正确的道路上... – 2012-01-10 09:49:58

+0

@FernandoRedondo当我去你的网站时,我得到这个错误:'iscroll.js:18 - 未捕获TypeError:无法读取属性'parentNode' null'。我相信你在创建iScroll实例时需要引用你的容器元素:'var myScroll = new iScroll('content'); //这将以data-role =“content”元素为目标。另外请注意,iScroll 4.x.x已经停用,并且优于3.x.x. – Jasper 2012-01-10 17:27:38

+0

@FernandoRedondo另外还有一个选项叫做'checkDOMChanges',如果设置为'true',当DOM改变时应该自动更新iScroll实例。我没有使用它,但它看起来很有希望:http://cubiq.org/iscroll#iscroll-syntax – Jasper 2012-01-10 17:29:13