2010-05-10 11 views

risposta

12

Non è così preciso, ma funziona:

var scrollPosition = window.pageYOffset; 
var windowSize  = window.innerHeight; 
var bodyHeight  = document.body.offsetHeight; 

alert(Math.max(bodyHeight - (scrollPosition + windowSize), 0)); 
+0

Non capisco, come posso ottenere i dati per l'immagine con id img1. Non voglio il corpo –

+13

Questo ha risposto alla tua domanda - non hai fatto menzione di immagini di ID. Per favore riformulare la tua domanda. – Sam

+0

Questa soluzione si rivolge solo alla finestra stessa e non a qualsiasi elemento che abbia una scroll, a cui si applica lo stesso problema. (anche l'OP non ha specificamente detto che riguarda lo scroll della finestra) – vsync

4

provare anche questo: risposta

$(document).height() - ($('body').height() + $('body').scrollTop()) 
0
var distanceFromBottom = $(document).height() - $(window).height() - $(document).scrollTop(); 
3

Tweak di rkleine. Ho scoperto che era in realtà, questo:

$(document).height() - ($(window).height() + $('body').scrollTop()) 

cioè $ (window) per l'altezza non $ ('body')

2

Ecco il codice in JS vaniglia:

var distanceFromBottom = document.body.scrollHeight - window.innerHeight - window.scrollY 
0

I dovuto modificare ulteriormente le risposte precedenti per farlo funzionare:

distFromBottom = $(document).height() - $(window).scrollTop() - $(window).height(); 

solo per andare verso il basso:

let bottomToWinTop = $(document).height() - $(window).scrollTop(); 

Ciò ottiene la distanza dalla parte inferiore del documento alla parte superiore della finestra. Dal altezza della finestra varierà, sottrarre l'altezza della finestra corrente per ottenere l'offset dal basso

let bottomToWinBottom = bottomToWinTop - $(window).height(); 

Ora bottomToWinBottom = distFromBottom = 0 quando l'utente viene fatta scorrere fino in fondo alla pagina e come essi scorrere verso l'alto, il suo valore è la distanza sotto la finestra che rappresenta un buon indicatore del posizionamento verticale.

Problemi correlati