getelementsbytagname javascript ejemplo
Determine la distancia desde la parte superior de un div a la parte superior de la ventana con javascript (4)
¿Cómo determino la distancia entre la parte superior de un div a la parte superior de la pantalla actual? Solo quiero la distancia de píxel a la parte superior de la pantalla actual, no la parte superior del documento. He intentado algunas cosas como .offset()
y .offsetHeight
, pero no puedo .offsetHeight
mi cerebro a eso. ¡Gracias!
Esto se puede lograr puramente con JavaScript .
Veo que la respuesta que quería escribir ha sido respondida por lynx en comentarios a la pregunta.
Pero de todos modos voy a escribir la respuesta porque, al igual que yo, la gente a veces olvida leer los comentarios.
Por lo tanto, si solo desea obtener la distancia de un elemento (en píxeles) desde la parte superior de la ventana de su pantalla, esto es lo que debe hacer:
// Fetch the element
var el = document.getElementById("someElement");
// Use the ''top'' property of ''. getBoundingClientRect()'' to get the distance from top
var distanceFromTop = el.getBoundingClientRect().top;
¡Eso es! Espero que ayude a alguien :)
Puede usar .offset()
para obtener el desplazamiento en comparación con el elemento del document
y luego usar la propiedad scrollTop
del elemento de la window
para encontrar qué tan abajo en la página el usuario se desplazó:
var scrollTop = $(window).scrollTop(),
elementOffset = $(''#my-element'').offset().top,
distance = (elementOffset - scrollTop);
La variable de distance
ahora contiene la distancia desde la parte superior del #my-element
element y el pliegue superior.
Aquí hay una demostración: http://jsfiddle.net/Rxs2m/
Tenga en cuenta que los valores negativos significan que el elemento está arriba del pliegue superior.
Usé esto:
myElement = document.getElemenById("xyz");
Get_Offset_From_Start ( myElement ); // returns positions from website''s start position
Get_Offset_From_CurrentView ( myElement ); // returns positions from current scrolled view''s TOP and LEFT
código:
function Get_Offset_From_Start (object, offset) {
offset = offset || {x : 0, y : 0};
offset.x += object.offsetLeft; offset.y += object.offsetTop;
if(object.offsetParent) {
offset = Get_Offset_From_Start (object.offsetParent, offset);
}
return offset;
}
function Get_Offset_From_CurrentView (myElement) {
if (!myElement) return;
var offset = Get_Offset_From_Start (myElement);
var scrolled = GetScrolled (myElement.parentNode);
var posX = offset.x - scrolled.x; var posY = offset.y - scrolled.y;
return {lefttt: posX , toppp: posY };
}
//helper
function GetScrolled (object, scrolled) {
scrolled = scrolled || {x : 0, y : 0};
scrolled.x += object.scrollLeft; scrolled.y += object.scrollTop;
if (object.tagName.toLowerCase () != "html" && object.parentNode) { scrolled=GetScrolled (object.parentNode, scrolled); }
return scrolled;
}
/*
// live monitoring
window.addEventListener(''scroll'', function (evt) {
var Positionsss = Get_Offset_From_CurrentView(myElement);
console.log(Positionsss);
});
*/
Vainilla:
window.addEventListener(''scroll'', function(ev) {
var someDiv = document.getElementById(''someDiv'');
var distanceToTop = someDiv.getBoundingClientRect().top;
console.log(distanceToTop);
});
Abra la consola de su navegador y recorra su página para ver la distancia.