获得真实设备的屏幕尺寸

时间:2013-03-24 02:32:34

标签: javascript jquery responsive-design

我在获取真实设备的屏幕尺寸时遇到问题。看看jsfiddle:http://jsfiddle.net/glenswift/CpBkU/

调整输出框的大小会导致h1文本发生变化。我知道h1不同部分的像素大小,因此它可以在桌面上正常工作。但是在具有大dpi和小屏幕的设备上,我的解决方案不起作用,文本消失了。

我不知道如何解决这个问题。我见过类似问题(12),但它们对我没有帮助。

我的代码:

function setPositions(){
    var W = $(window).width(),
        h1 = '';
    if (W < 210) {
        h1 = 'Hello';
    } else if (W < 270) {
        h1 = 'Hello World';
    } else {
        h1 = 'Hello World Text'
    }
    $('h1').empty().text(h1);
}
$(document).ready(function(){
    setPositions();
});
$(window).resize(function(){
    setPositions();
});

非常感谢你。

4 个答案:

答案 0 :(得分:5)

媒体查询还有一件事http://blog.cloudfour.com/the-ems-have-it-proportional-media-queries-ftw/

这真是一篇伟大的文章,让我开心。)

享受!

答案 1 :(得分:4)

确保在元标记中使用“viewport”。它用于响应式网页设计。 即<meta name="viewport" content="width=device-width" />

参考:http://webdesignerwall.com/tutorials/viewport-meta-tag-for-non-responsive-design

答案 2 :(得分:3)

出于兴趣,我尝试了一种CSS方法。我没有视网膜显示设备来仔细检查,但看看它的外观:http://jsfiddle.net/panchroma/Z678z/

我知道这在你的特定情况下可能不实用,但由于你处理文本而不是图像,CSS确实有一些优点。

HTML

<h1 class="small">Hello</h1>
<h1 class="med">Hello World</h1>
<h1 class="lge">Hello World Text!</h1>  

CSS

 @media (max-width: 210px){
 .small{
 display:inherit;
 }

 .med, .lge{
display:none;
}  
}

etc  

根据视口的不同,h1文本从hello,hello world变为hello world text

答案 3 :(得分:2)

要了解屏幕尺寸,您应使用元标记<meta name="viewport" content="width=device-width" />

您可以使用媒体查询根据屏幕尺寸宽度调整内容,而不是使用setPositions功能。