jquery mobile - android手机上的视口值

时间:2012-08-06 15:42:38

标签: android jquery mobile

我是Jquery Mobile的新手,我真的不明白如何设置视口值以正确渲染图像。以下是我测试的步骤:

  1. 我准备了一张480x432的图像。 enter image description here
  2. 我写了一个这样的测试页:
  3. <html>
    <head>    
    <meta name="viewport" content="initial-scale=1.0, target-densitydpi=device-dpi,width=device-width, minimum-scale=0.1, user-scalable=no"/>
    <link href="style/jquery.mobile.theme-1.1.1.min.css" rel="stylesheet" type="text/css"/>
    <link href="style/jquery.mobile.structure-1.1.1.min.css" rel="stylesheet" type="text/css"/>    
     <script src="js/jquery.js" type="text/javascript"></script>
     <script src="js/jquery.mobile-1.1.1.min.js" type="text/javascript"></script>
    </head>
    <body style="margin:0;">
    <div data-role="header" data-position="fixed" data-theme="f">
    <a href="sm_app_home.html" data-theme="a" data-mini="true" data-icon="home" class="ui-btn-left">Home</a>
    <a href="sm_app_home.html" data-theme="a" data-mini="true" data-icon="gear" class="ui-btn-right">settings</a>  
    </div>  
        <div data-role="content">
        <div id="bld" class="bld" style="position: absolute; width: 250px; height: 125px; left: 161px; background-color: #ccccff; top: 185px;">Hello world.</div>
        <img id="bl1" src="img/sc_museum/480x432.jpg" />
    </div>
    <script>
        $("#bl1").click(function(){
        var pageWidth = $(document).width();
        var pageHeight = $(document).height();
        var viewportWidth = $(window).width();
        var viewportHeight = $(window).height();
        $("#bld").html("Page width: "+pageWidth+"<br />pageHeight: "+pageHeight+"<br />port width: "+viewportWidth+"<br />port height: "+viewportHeight);
    });
    </script>
    </body>
    </html>
    

    3。 该应用程序在我的三星Galaxy SII上运行,如下所示: enter image description here

    正如您所看到的,图像非常合适,但按钮和标签文本太小了。

    4。 我在target-densitydpi=device-dpi值设置中删除了viewport,我的应用程序如下所示:

    enter image description here

    如您所见,按钮和标签文本很好,但图像溢出。

    我的问题:

    1. 当我使用某个视口值时,为什么我得到页面宽度/高度和端口宽度/高度值,就像紫色块中的值一样?
    2. 建议的视口值是什么以及如何处理图像宽度/高度?
    3. 我知道图像宽度/高度是像素,但Android手机屏幕没有使用它,但我仍然不确定如何调整图像大小以适应屏幕。

2 个答案:

答案 0 :(得分:1)

如果您使用target-densitydpi = device-dpi,则移动浏览器会提供原生可用像素。如果您不使用target-densitydpi = device-dpi,则移动浏览器会缩放/缩放页面。

我的理解是您无法知道用户正在使用的移动设备,因此无法知道可用的视口大小。您使用JavaScript检测大小的方法很好并且有效。在获得视口大小然后加载自定义创建的图像后,难道不能只是对服务器进行Ajax调用吗?

答案 1 :(得分:0)

请使用“em”中的宽度和高度单位而不是像素,然后尝试一下。不同设备的像素比率不同,因此px在设备中不会呈现相同的效果。

相关问题