2012-02-24 11 views
47

¿Cuál es la diferencia principal entre $(window).width() vs en jQuery? Si la ventana denota el navegador y el documento representa el cuerpo de la página html? Estoy en lo correcto ?

+0

@PizzaiolaGorgonzola podría explicar sobre esto "pero no debe usarse para estructurar su código, lo anima a escribir código opaco, ilegible, difícil de mantener, no orientado a objetos". – kbvishnu

Respuesta

57

Desde el documentation of width():

Este método también es capaz de encontrar el ancho de la ventana y documento.

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

Simple jsFiddle Demo

En la demo, yo he puesto html { width: 1000px; }, que es más grande que el área de visualización.

El ancho del cuerpo de su página HTML es un tercer valor. $('body').width() también puede diferir de los otros dos (intente body { margin: 100px; } por ejemplo).

1

Sí: el ancho de la ventana es el ancho de la ventana del navegador y el ancho del documento es el ancho de la página web.

20

Estás en la correcta. el window es el área visible del navegador. El document es el cuerpo real de la página. Por lo que su document podría extenderse mucho más allá de la window

+0

¿POR qué la demo en jquery muestra un ancho de ventana menor que el ancho del navegador? http://screencast.com/t/PlTXAShwmeP7 – AlxVallejo

+0

@AlxVallejo si mira la fuente, puede ver que el código de demostración se ejecuta en un iFrame que tiene el ancho de 568px. – Henesnarfel

+0

el 'documento' podría extenderse mucho más allá de la' ventana' y dejar las cosas claras para mí. – inquisitive

3

$(window).width(); devuelve el ancho de la ventana del navegador

$(document).width(); Devuelve la anchura del documento HTML

$(document).width() es un poco fiable, lo que resulta en un valor más bajo para una completa-seleccionados navegador. $ (ventana) .width() es más seguro.

$(window).width() obtiene todo el ancho de la ventana, incluidos elementos como la barra de desplazamiento.

7

Bueno, el window es lo primero que se carga en el navegador. Este objeto window tiene la mayoría de las propiedades como length, innerWidth, innerHeight, name, si se ha cerrado, sus padres, y más.

¿Qué pasa con el objeto del documento?

El objeto document es su documento html que se cargará en el navegador . El document en realidad se carga dentro del objeto window y tiene propiedades disponibles como título, URL, cookie, etc. ¿Qué significa realmente ? Esto significa que si desea tener acceso a una propiedad de la window es window.property, si es document es window.document.property que también está disponible en más corto document.property.

Por lo tanto, en conclusión, el documento podría ser más pequeño que la ventana.

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

+0

Bueno, su aspx o php seguirá produciendo un documento HTML. No hace una diferencia qué idioma se usó para crear HTML. – kapa

+0

Es cierto que esos idiomas son del lado del servidor. Editado itx. –

+2

@Rick debe hacer referencia a las citas, es útil y ético: http://eligeske.com/jquery/what-is-the-difference-between-document-and-window-objects-2/ –

3

Otra diferencia importante.

$(window).width(); está disponible antes de la carga de documentos/está listo

$(document).width(); sólo está disponible después de que el documento había cargado

Así que para la segunda, necesita

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