2009-07-07 17 views
9

I' cercando di utilizzare window.pageYOffset & window.scrollMaxY per calcolare lo stato di avanzamento pagina corrente. Questo approccio funziona con FF3.5 ma sotto il webkit window.scrollMaxY non è definito.Alternative a window.scrollMaxY?

risposta

2

ho franca document.body.scrollHeight in modo che

document.body.scrollHeight = window.pageYOffset + screen height in pixels 

alla fine della pagina (su Android).

14

Alternativa a window.scrollMaxY:

document.documentElement.scrollHeight - document.documentElement.clientHeight 

dà stesso risultato di window.scrollMaxY con IE7, IE8, FF3.5, Safari 4, Opera 10, Google Chrome 3 sotto DOCTYPE XHTML 1.0 Transitional.

+0

Grazie buon signore. Mi piacerebbe sapere se c'è qualche svantaggio nell'usare questo metodo. L'ho appena testato in chrome/firefox e funziona! – swajak

+0

Cercando di implementarlo su 'window.scrollY' ho notato che in chrome,' window.scrollY' è un float ad alta precisione, mentre 'scrollHeight' e' clientHeight' sono interi, quindi ho dovuto 'Math.round() 'it – Kaiido

3

due anni più tardi ...

function getScrollMaxY(){ 

var innerh; 

if (window.innerHeight){ 
    innerh = window.innerHeight; 
}else{ 
    innerh = document.body.clientHeight; 
} 

if (window.innerHeight && window.scrollMaxY){ 
    // Firefox 
    yWithScroll = window.innerHeight + window.scrollMaxY; 
} else if (document.body.scrollHeight > document.body.offsetHeight){ 
    // all but Explorer Mac 
    yWithScroll = document.body.scrollHeight; 
} else { 
    // works in Explorer 6 Strict, Mozilla (not FF) and Safari 
    yWithScroll = document.body.offsetHeight; 
} 
return yWithScroll-innerh; 
} 
0
x = document.body.clientHeight; 
console.log(x ,"Cline HEight");  

xx = window.innerHeight; 
console.log(xx, "Inner Height"); 

xxx = document.body.scrollHeight 
console.log(xxx, "scrollHeight"); 

xxxx = window.scrollMaxY; 
console.log(xxxx, "scrollMaxY for IE"); 


xxxxx = document.body.offsetHeight; 
console.log(xxxxx, "offsetHeight"); 

xxxxxx= document.body.scrollTop; 
console.log(xxxxxx, "scrollTop");strong text