2009-07-07 22 views
9

Estoy tratando de usar window.pageYOffset & window.scrollMaxY para calcular el progreso de la página actual. Este enfoque funciona bajo FF3.5 pero bajo webkit window.scrollMaxY no está definido.Alternativas a window.scrollMaxY?

Respuesta

2

Tengo distancia con document.body.scrollHeight modo que

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

al final de la página (en Android).

14

Alternativa a window.scrollMaxY:

document.documentElement.scrollHeight - document.documentElement.clientHeight 

da mismo resultado que window.scrollMaxY con ie7, ie8, FF3.5, Safari 4, Opera 10, Google Chrome 3 bajo XHTML DOCTYPE 1.0 de Transición.

+0

Gracias buen señor. Me encantaría saber si hay algún inconveniente para usar este método. ¡Lo probé en Chrome/Firefox y funciona! – swajak

+0

Tratando de implementarlo contra 'window.scrollY' Observé que al menos en cromo,' window.scrollY' es un flotador de alta precisión, mientras que 'scrollHeight' y' clientHeight' son enteros, por lo que tuve que 'Math.round() ' – Kaiido

3

y dos años después ...

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