$(window).width()vs $(document).width()之间的区别

时间:2012-02-24 12:48:58

标签: javascript jquery jquery-selectors dimensions

jQuery中$(window).width()$(document).width()之间的主要区别是什么? 是否窗口表示浏览器,文档表示html页面的主体?我对么 ?

6 个答案:

答案 0 :(得分:58)

来自documentation of width()

  

此方法还可以找到窗口和文档的宽度。

$(window).width();   // returns width of browser viewport
$(document).width(); // returns width of HTML document

Simple jsFiddle Demo

在演示中,我设置了html { width: 1000px; },它比视口大。

HTML页面正文的宽度是第三个值。 $('body').width()也可能与其他两个不同(例如,尝试body { margin: 100px; }。)

答案 1 :(得分:21)

你是对的。 window是浏览器的可查看区域。 document是页面的实际主体。因此,document可能会远远超出window

答案 2 :(得分:8)

  

嗯,window是第一个被加载到浏览器中的东西。   此window对象具有大多数属性,如length,   innerWidthinnerHeightname,如果已关闭,则为其父母,以及   更多。

     

那么文档对象呢?

     

document对象是你的html文档,将被加载到   浏览器。 document实际上已加载到window对象中   并且具有标题,URL,cookie等可用的属性   这真的意味着什么?这意味着如果你想访问一个属性   windowwindow.property,如果它是document   window.document.property也可以简称为{   document.property

总之,文档可能比窗口小。

FROM:http://eligeske.com/jquery/what-is-the-difference-between-document-and-window-objects-2/

答案 3 :(得分:5)

$(window).width();返回浏览器视口的宽度

$(document).width();返回HTML文档的宽度

$(document).width()有点不可靠,导致全屏浏览器的值较低。 $(window).width()更安全。

$(window).width()获取窗口的整个宽度,包括滚动条等内容。

答案 4 :(得分:4)

另一个重要区别。

$(window).width();在文档加载/准备好之前可用

$(document).width();仅在文档加载后可用

所以对于第二个,你需要

$(document).ready(function() {
   var w = $(document).width();
});

答案 5 :(得分:2)

是 - 窗口的宽度是浏览器窗口的宽度,文件的宽度是网页的宽度。