在屏幕宽度上设置网格列的数量 - jQuery Mobile?

时间:2014-06-28 14:46:27

标签: android jquery css jquery-mobile mobile

我试图根据屏幕宽度限制Grid列的数量(使用jQuery Mobile - http://demos.jquerymobile.com/1.4.2/grids/)。这适用于不具备可扩展性的全屏应用,因此无需进行响应式设计。

举个例子,如果将应用程序加载到iPhone 3GS(320w x 480h)上,则只想将其限制为2列。如果加载到Samsung S3(720w x 1280h),则限制为4列。等

考虑使用JS document.width或width.screen.width属性,但发现它们太不一致了。在运行Android的三星Galaxy S3上,原生浏览器将屏幕宽度报告为720px,Chrome浏览器将其报告为320px。

添加和删除视口元标记对JS的宽度值没有影响。

meta name =" viewport" content =" user-scalable = no,initial-scale = 1.0,maximum-scale = 1.0,minimum-scale = 1.0"

也没有用setTimeout延迟查找。

我使用的jQuery版本:

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" /> 
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script> 

有没有办法用CSS实现这个目标?

感谢。

[编辑]

不太确定这是我构建的应用程序的问题。在谷歌C​​hrome浏览器中,受影响的Android版本看到的是4列而不是5列,这绝对是优雅的失败&#39;。

2 个答案:

答案 0 :(得分:0)

<meta name="viewport" content="width=device-width, target-densityDpi=device-dpi">

看看这是否修复了它。银河系渲染了一半的像素,以便让设备显卡本身呈现清晰度,而不是不断地从使用屏幕宽度的网站获取桌面网站,以确定设备移动时的设备类型。

答案 1 :(得分:0)

到目前为止,我知道列号必须声明为硬编码。因此必须动态创建它来控制列数。

width=$(window).width();

OR

width=$( document ).width();

if(width<=320)
{
    myhtml='<div class="ui-grid-a" class="mymenu">"';
    myhtml=myhtml+'<div class="ui-block-a">Hello</div>';
    myhtml=myhtml+'<div class="ui-block-b">Hello</div>';
    myhtml=myhtml+'</div>';

}
else if(width>320 && width<720)
{
    myhtml='<div class="ui-grid-b" class="mymenu">"';
    myhtml=myhtml+'<div class="ui-block-a">Hello</div>';
    myhtml=myhtml+'<div class="ui-block-b">Hello</div>';
    myhtml=myhtml+'<div class="ui-block-c">Hello</div>';
    myhtml=myhtml+'</div>';

}

$('#menu_div').html(myhtml);