¿Cómo obtener el valor de posición de desplazamiento de un documento?¿Cómo obtengo la posición de desplazamiento de un documento?
Respuesta
$(document).height() //returns window height
$(document).scrollTop() //returns scroll position from top of document
Algo como esto debería resolver su problema:
$.getDocHeight = function(){
var D = document;
return Math.max(Math.max(D.body.scrollHeight, D.documentElement.scrollHeight), Math.max(D.body.offsetHeight, D.documentElement.offsetHeight), Math.max(D.body.clientHeight, D.documentElement.clientHeight));
};
alert($.getDocHeight());
Sal: llamar a esa función cada vez que lo necesite, la alerta es para propósitos de prueba ..
Por alguna razón, esta función no funciona correctamente para mí; usándolo dentro de un iframe. La altura real de es 256px, esta función me da 337px y no tengo idea de dónde viene. PD Estoy usando Chrome 18. – jurchiks
@jurchiks: ¿Tiene un enlace a dónde está ese iframe, para que lo eche un vistazo? – Zuul
https://www.blade.dateks.lv/salidzinat?ids=58664,43586. Haga clic en cualquiera de los signos de interrogación. Me las arreglé para arreglar la mayor parte, pero dos de esas (y hay más dependiendo de los artículos que se comparan) todavía tienen un extraño, misterioso ~ 20px de margen en la parte inferior. Sin embargo, desaparece cuando cambio el tamaño de la ventana, porque lo hice cambiar las dimensiones emergentes en el cambio de tamaño de la ventana. – jurchiks
document.getElementById("elementID").scrollHeight
$("elementID").scrollHeight
Entonces, ¿cuál es el elemento Id de su objeto de documento? ... tal vez quisiste decir "document.body.scrollHeight"? – BrainSlugs83
$ ('# gallery'). ScrollHeight me da indefinido // # galería es id de mi desbordamiento: elemento automático, no funciona –
Así es como para obtener el scrollHeight
de un elemento obtenido con un selector jQuery:
$(selector)[0].scrollHeight
Si selector
es la identificación del elemento (p. elemId
), se garantiza que el elemento 0-indexado de la matriz será el elemento que desee seleccionar, y scrollHeight
será correcto.
Tenga cuidado, según la base de conocimiento de Mozilla, no es compatible con versiones de IE menores que el 8.0 https://developer.mozilla.org/en/DOM/element.scrollHeight –
Exactamente como @EmanueleDelGrande dice: mira aquí: http://www.quirksmode.org/dom/w3c_cssom.html - para IE <8 DOM scrollHeight está implementado pero incorrectamente. Para mí funciona en IE 6, 7 en netrenderer pero podría no funcionar en todos los casos. – TMS
De acuerdo con @Tomas, use la abstracción de jQuery para un mejor manejo de las peculiaridades del navegador cruzado. Por ejemplo, lo anterior se puede modificar a $ (selector) .offset(). Superior –
Si está utilizando Jquery 1.6 o superior, use prop para acceder al valor.
$(document).prop('scrollHeight')
Las versiones anteriores solían obtener el valor de attr pero no la publicación 1.6.
Esto devuelve "indefinido" para mí con jQuery 1.7.1, al igual que $ (document) .attr ("scrollHeight"). – Michael
Eso es porque le falta el elemento del cuerpo. Tiene que ser $ (document.body) .prop ('scrollHeight') - en ese punto también puedes usar document.body.scrollHeight; – goddogsrunning
Para obtener la altura de desplazamiento real de las áreas desplazadas por la barra de desplazamiento de la ventana, utilicé $('body').prop('scrollHeight')
. Esta parece ser la solución de trabajo más simple, pero no he comprobado exhaustivamente la compatibilidad. Emanuele Del Grande señala en otra solución que esto probablemente no funcionará para IE por debajo de 8.
La mayoría de las otras soluciones funcionan bien para elementos desplazables, pero esto funciona para toda la ventana. Notablemente, tuve el mismo problema que Michael para la solución de Ankit, es decir, que $(document).prop('scrollHeight')
está devolviendo undefined
.
Utiliza elementos HTML DOM, pero no el selector jQuery. Se puede utilizar como:
var height = document.body.scrollHeight;
Prueba esto:
var scrollHeight = $(scrollable)[0] == document ? document.body.scrollHeight : $(scrollable)[0].scrollHeight;
Usted puede probar esto, por ejemplo, este código de poner la barra de desplazamiento en la parte inferior de todas las etiquetas DIV
Recuerde: jQuery puede aceptar una función en lugar del valor como argumento. "this" es el objeto tratado por jQuery, la función devuelve la propiedad scrollHeight del DIV actual "this" y lo hace para todos los DIV en el documento.
$("div").scrollTop(function(){return this.scrollHeight})
- 1. ¿Cómo obtengo la posición actual de intercalación?
- 2. CListCtrl: ¿Cómo mantener la posición de desplazamiento?
- 3. Establecer la posición de desplazamiento
- 4. ¿Cómo puedo establecer la posición de desplazamiento de un UIScrollView?
- 5. ¿Cómo obtengo la posición de un elemento hijo
- 6. CSS establecer la posición de desplazamiento predeterminada
- 7. Cómo hacer un marcador de posición de barra de desplazamiento
- 8. cómo recordar la posición de desplazamiento de la página
- 9. ¿Cómo obtener la posición del documento en un WebView?
- 10. Cómo animar la posición de desplazamiento? Cómo desplazarse sin problemas?
- 11. ¿Cómo obtengo la posición actual del cursor de la pantalla?
- 12. Mostrar div cuando la posición de desplazamiento
- 13. Cómo obtener la última posición de vista de desplazamiento, scrollview
- 14. ¿Cómo sincronizo la posición de desplazamiento de dos divisiones?
- 15. posición de desplazamiento con jQuery
- 16. Posición fija - Desplazamiento horizontal
- 17. ¿Cómo obtengo la posición de un resultado en la lista después de un pedido_por?
- 18. ¿Cómo obtener la posición de desplazamiento desde GridView?
- 19. ¿Cómo mantengo la posición de desplazamiento en MVC?
- 20. Obtener desplazamiento Posición Porcentaje
- 21. cómo establecer la posición de desplazamiento en uiwebview
- 22. ¿Cómo puedo obtener la posición de desplazamiento actual en UIWebView
- 23. HTML/Javascript: reparación de la posición de desplazamiento después de la rotación de la pantalla
- 24. Cambio de la posición de la barra de desplazamiento
- 25. Obtener la posición del ratón en desplazamiento
- 26. navegador cruz comparar documento posición
- 27. ¿Cambiar la posición de la barra de desplazamiento en TextBox?
- 28. ¿Cómo obtengo la posición absoluta de un clic de un evento onClick en el cuerpo?
- 29. iPad deshabilita desplazamiento de documento pero no desbordamiento div desplazamiento
- 30. ¿Cómo obtengo la posición de la línea base de texto en una etiqueta y un NumericUpDown?
que era thinkig la misma manera, pero ¿por qué console.log ($ (this) .scrollTop()) = 1.187 console.log ($ (this) .height()) = 1.762 ¿difiere tanto? Para 575px si me desplacé al final de la página. ¿Adónde se han ido esos 575px? La barra de desplazamiento no puede ser 576px :) – Somebody
Baaah nuevamente es mi culpa. Estaba mirando la barra de desplazamiento con la ventana de firebug abierta. Ofc puede ser 576px ahora. :) Gracias supongo que el tema está cerrado. – Somebody
-1 - Eso es muy bueno, pero no responde la pregunta, que fue sobre 'scrollHeight'. –