jQuery(window).height()不适用于移动浏览器

时间:2012-12-30 21:34:42

标签: javascript jquery mobile viewport

我有一个使用jQuery(窗口).height()的整页幻灯片,它在大多数浏览器上工作正常,但是我在手机上检查了它(Android Browser& Dolphin),幻灯片显示无休止地增长,很好超出视口高度。 这是我的代码:

var height = jQuery(window).height();
jQuery('.slide').each(function(index, element) {
    if(height > 600) jQuery(this).height(height);
    else jQuery(this).height(600);
});
jQuery(window).on('resize orientationChanged', function() {
    jQuery('.slide').each(function(index, element) {
        if(height > 600) jQuery(this).height(height);
        else jQuery(this).height(600);
    });
});

任何想法可能导致它?

感谢。

3 个答案:

答案 0 :(得分:6)

所以在这个问题3年后问jquery窗口高度仍然无法在移动设备中工作,只需用javascript替换jquery,它对我有用。

替换jquery

var bodyh = jQuery("body").height();
var windowh = jQuery(window).height();

使用javascript

 var bodyh = document.body.clientHeight;
 var windowh = window.innerHeight;

答案 1 :(得分:1)

如果HTML文档没有DOCTYPE声明,则它不是有效的HTML。如果未在窗口中指定doctype,则JQuery无法正确计算窗口高度/文档高度。

该声明是向Web浏览器发送的有关页面中使用的HTML版本的说明。

因此,如果您还没有指定它,请将DOCTYPE声明添加到您的HTML页面并查看输出。

<!DOCTYPE HTML>
<html>
   //...
</html>

答案 2 :(得分:0)

html文档类型可能存在问题。以下是移动设备的示例文档类型。在代码中更改此内容并尝试。

<!DOCTYPE html> 
<html> 
<head> 
    <title>My Page name</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1">

请参阅以下链接更多详情。 http://www.microsoft.com/en-GB/developers/articles/jquery-mobile-101