【问题标题】:Inconsistent results offered by $(window).height();$(window).height() 提供的结果不一致;
【发布时间】:2014-03-21 06:38:47
【问题描述】:

我正在尝试获取浏览器窗口的height 的结果不一致。

为此,我在准备好文档时使用了$(window).height();,我注意到我在不同案例之间得到了不同的值(相差 15 像素)。 结果似乎受到我正在应用的样式表的影响。删除样式表可以解决问题(或者只是删除几行(例如 font-size: 2em; 、 float:left; position:absolute;... 似乎根本不相关的东西)

我认为样式根本不应该与浏览器的窗口大小相关。 对于任何情况,它不应该返回完全相同的值吗?

我读过the documentation of $.height() 并没有说明这个话题。

我还注意到它在加载时返回正确的尺寸,如下所示:

$(window).on('load', function() {
    var windowHeight = $(window).height();
    console.log(windowHeight);
});

很抱歉,我无法在 jsfiddle 重现我的问题。

【问题讨论】:

  • 这个问题是不是和这个stackoverflow.com/questions/3698200/…有关?
  • 为了获得窗口的高度而必须加载所有页面内容对我来说没有多大意义。我可以理解它可能需要获取元素的height,但不是用于窗口。
  • 嗯,这可能与滚动条有关。加载完所有内容后,您可能会有一个滚动条,可以将输出减少 15 像素...

标签: javascript jquery


【解决方案1】:

这可能与滚动条有关。加载完所有内容后,您可能会有一个滚动条,可以将输出减少 15 像素。

【讨论】:

    【解决方案2】:

    $(窗口).height();永远不会改变字体或在css中浮动。看起来您正在调整导致大小变化的 javascript 控制窗口。请不要调整控制台大小,然后您将拥有固定的窗口大小。

    【讨论】:

    • 即使隐藏开发人员工具,我也会遇到同样的不一致问题。
    • 是的,只需删除font-size,我就会得到不同的结果。信不信由你:)
    • @Alvaro 添加字体大小时是否有水平滚动条?
    • 我根本没有水平滚动条。
    • 您可以尝试在页面中打印 height() 而不是控制台。像 $("#anyDivID").html(windowHeight) 而不是 console.log(windowHeight);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多