Estoy mostrando el valor de document.body.scrollTop en la barra de estado mientras muevo el mouse. El valor siempre es 0 en IE. ¿Por qué siempre es 0? ¿Hay alguna otra manera de obtener cuánto se movió la barra de desplazamiento?document.body.scrollTop siempre es 0 en IE incluso cuando se está desplazando
Respuesta
Es posible que desee probar esto para un tipo de documento más antiguo en el IE:
var top = (document.documentElement && document.documentElement.scrollTop) ||
document.body.scrollTop;
¿No sería una bomba si 'document.documentElement' no está definido? Creo que quisiste decir 'document.documentElement' en lugar de' document.documentElement.scrollTop' en la primera parte de la expresión ternaria. :) –
@Vivin - No está indefinido, la propiedad de desplazamiento simplemente no está configurada, lo que da como resultado 0/falso. –
Esto se puede abreviar a 'var top = document.documentElement.scrollTop || document.body.scrollTop; ' –
Dependiendo del DOCTYPE, tendría que usar document.body.scrollTop
o document.documentElement.scrollTop
. ¿Has probado el segundo?
Usted puede hacer algo como esto:
var scrollTop = document.documentElement ? document.documentElement.scrollTop :
document.body.scrollTop;
me encontré con estos enlaces, mientras que la investigación de su problema:
- Window size and scrolling (hacia la parte inferior)
- document.body.scrollTop in IE
Esto puede ayudarte un poco más.
Esta función proporciona una aplicación multi-navegador de la lectura de la compensación de desplazamiento:
function posTop() {
return typeof window.pageYOffset != 'undefined' ? window.pageYOffset: document.documentElement.scrollTop? document.documentElement.scrollTop: document.body.scrollTop? document.body.scrollTop:0;
}
Gracias, esta es la única respuesta que funciona en ambas versiones anteriores de IE como la última versión de Chrome. – Kamelkent
- 1. indexPath.row siempre es 0
- 2. inputstream.available() es 0 siempre
- 3. NSURLRequest no se activará mientras UIScrollView se está desplazando
- 4. Android onActivityResult siempre es 0
- 5. jQuery: solo IE, entrada: activada devuelve 0 incluso cuando los elementos están seleccionados
- 6. ¿Las entradas siempre se inicializan en 0?
- 7. getHistorySize() devuelve 0 incluso en eventos MotionEvent.ACTION_MOVE
- 8. ¿Es una buena práctica usar siempre métodos de acceso, incluso cuando se accede al estado local?
- 9. WMPLib: player.mediaCollection.getAll.() El conteo es siempre 0
- 10. textview.getLineCount siempre 0 en android
- 11. jscrollpane bloque desplazando padre
- 12. Cómo saber de qué manera se está desplazando UITableView
- 13. MPMoviePlayerController - Duración siempre 0
- 14. document.querySelectorToda la longitud es siempre 0
- 15. El ecualizador no siempre es compatible, incluso cuando api> = 9?
- 16. Pruebas de referencia nula siempre devuelve falsa ... incluso cuando nula
- 17. funciones Eliminar Elimina incluso cuando la aplicación está cerrada llamando
- 18. Element offsetHeight siempre "0"
- 19. Comparar el validador siempre se dispara incluso cuando las contraseñas son las mismas
- 20. Application.OpenForms.Count = 0 siempre
- 21. getImageData siempre devolviendo 0
- 22. Cómo detectar que UIScrollView se está desplazando o que está arrastrando
- 23. Mostrar siempre FooterTemplate, incluso sin datos
- 24. Detectar si actualmente se está desplazando una página web en Android
- 25. El paso de compilación desencadenado por TeamCity siempre se genera, incluso cuando no hay cambios
- 26. lagunas incremento automático cuando se usa INSERT ... SELECT incluso con innodb_autoinc_lock_mode = 0
- 27. Delphi: StringList Delimiter es siempre un carácter de espacio incluso si Delimiter está configurado
- 28. parámetros IE consiguen indefinido cuando se utiliza en setTimeout
- 29. "SELECT last_insert_rowid()" devuelve siempre "0"
- 30. mysql_affected_rows() devuelve 0 para la instrucción UPDATE, incluso cuando realmente ocurre una actualización
Lo DOCTYPE está usando? –
Volví a subir la respuesta seleccionada ya que nadie más parecía haberlo hecho (a menos que hubiera un voto negativo para contrarrestarlo). Hubiera sido bueno si hubieras respondido a la pregunta de Nick. –