Estoy creando una aplicación web a pantalla completa que tendrá algunos módulos/widgets que hacen uso del nuevo iOS 5 overflow: funciones de desplazamiento. Lo que quiero es deshabilitar ese efecto 'saltarín' cuando se desplaza el html/body (ya que es una pantalla completa) pero mantener ese efecto solo en los elementos desplazables.deshabilitando el desplazamiento animoso solo para html pero manteniendo para elementos con overflow: scroll
para suavizar los efectos de los elementos desplazables que tengo:
html, body { overflow: hidden; }
.scrollable {
overflow: scroll;
-webkit-overflow-scrolling: touch;
}
y luego el siguiente script que desactiva el efecto de desplazamiento táctil:
$(document).bind('touchmove', function (e) {
if (e.target === document.documentElement) {
e.preventDefault();
}
});
aunque esto no parece funcionar en absoluto , porque al desplazar un elemento al extremo inferior o superior también se desplaza al documentElement
.
¿Hay alguna forma de desactivar solo ese efecto para el cuerpo del elemento html?
Aquí es un buen ejemplo de cómo esto afecta a la funcionalidad:
http://dl.dropbox.com/u/1928164/ios5/index.html
No creo que su controlador de eventos llegue a prevenirDefault() porque el objetivo es el elemento que desencadenó el evento, que nunca puede ser document.documentElement (). Entonces, estás viendo el mismo comportamiento como si no tuvieras el controlador de eventos. – ThinkingStiff
que sería 'currentTarget', me temo. el objetivo puede devolver cualquier cosa dentro de él, puede intentar;) – zanona
currentTarget devuelve el elemento con el oyente, no el elemento que lanzó el evento. – ThinkingStiff