Respuestas:
.offset() devolverá la posición de desplazamiento de un elemento como un objeto simple, por ejemplo:
var position = $(element).offset(); // position = { left: 42, top: 567 }
Puede usar este valor de retorno para colocar otros elementos en el mismo lugar:
$(anotherElement).css(position)
offset()no devuelve la coordenada superior adecuada. En su lugar, devuelve aproximadamente 300 píxeles más que la coordenada superior del elemento en el documento. ¿¿Por qué??
Tenga en $(element).offset()cuenta que le indica la posición de un elemento en relación con el documento . Esto funciona muy bien en la mayoría de las circunstancias, pero en el caso de position:fixedque pueda obtener resultados inesperados.
Si su documento es más largo que la ventana gráfica y se ha desplazado verticalmente hacia la parte inferior del documento, position:fixedel offset()valor de su elemento será mayor que el valor esperado en la cantidad que ha desplazado.
Si está buscando un valor relativo a la ventana gráfica (ventana), en lugar del documento en una posición: elemento fijo, puede restar el scrollTop()valor del documento del valor del elemento fijo offset().top. Ejemplo:$("#el").offset().top - $(document).scrollTop()
Si el position:fixedelemento primario desplazado del elemento es el documento , desea leer en su parseInt($.css('top'))lugar.
$(document).scrollTop()