Come individuare la posizione assoluta di un elemento sullo schermo visibile corrente (viewport) utilizzando jQuery?Posizione assoluta di un elemento sullo schermo utilizzando jQuery
Sto avendo position:relative
, quindi offset() darà solo l'offset all'interno del genitore.
Ho div gerarchico, quindi $("#me").parent().offset() + $("#me").offset()
non aiuta neanche.
Ho bisogno della posizione nella finestra, non del documento, quindi quando il documento scorre, il valore dovrebbe cambiare.
So che potrei sommare tutti gli offset genitore, ma voglio una soluzione più pulita.
var top = $("#map").offset().top +
$("#map").parent().offset().top +
$("#map").parent().parent().offset().top +
$("#map").parent().parent().parent().offset().top;
Qualche idea?
Aggiornamento: ho bisogno di ottenere il divario esatto in pixel tra parte superiore della mia div e la parte superiore del documento, tra cui imbottitura/margini/offset?
Il mio codice:
HTML
<div id="map_frame" class="frame" hidden="hidden">
<div id="map_wrapper">
<div id="map"></div>
</div>
</div>
CSS
#map_frame{
border:1px solid #800008;
}
#map_wrapper {
position:relative;
left:2%;
top:1%;
width:95%;
max-height:80%;
display:block;
}
#map {
position:relative;
height:100%;
width:100%;
display:block;
border:3px solid #fff;
}
jQuery per ridimensionare la mappa per riempire lo schermo *
var t = $("#map").offset().top +
$("#map").parent().offset().top +
$("#map").parent().parent().offset().top +
$("#map").parent().parent().parent().offset().top;
$("#map").height($(window).height() - t - ($(window).height() * 8/100));
Grazie ...
'offset()' restituisce l'offset relativo Ive al documento, non importa come hai posizionato i tuoi elementi. In che modo la posizione di un elemento rispetto a, bene qualcosa, cambia in scroll? Sei sicuro di non voler cercare 'scrollTop()'? – adeneo
offset() restituirà l'offset dall'elemento genitore se lo stile è 'position: relativo'. – ATOzTOA
Quando si scorre, la distanza tra l'elemento e la parte superiore dello schermo cambia, giusto? – ATOzTOA