Este es un comportamiento por defecto de los browsers para [móviles][1], el cual al hacer algún tipo de arrastre extremo dentro del (me refiero del extremo superior al inferior principalmente, ó si está en landscape de derecha a izquierda y viceversa) éste se mueve levemente con un efecto resorte, lo que eventualmente puede llegar a ser molesto si queremos concentrar nuestras interacciones en [eventos gestuales][2].

Para mejor entendimiento, play al siguiente video:

Abre ejemplo1.html en tu móvil, te sugiero usar el browser y no el lector de QR: http://www.csslab.cl/ejemplos/touchmove/ejemplo1.html

Ejemplo1

Para deshabilitar este comportamiento se necesita de una pizca de CSS y algo de JS:

html, body {
   height: 100%;
   overflow: hidden;
}
document.body.addEventListener('touchmove', function (event) {
   event.preventDefault();
});

Con esto bloqueamos por completo el evento touch move a todo el body, permitiendo todo lo que sea tap (click en desktop). Queda en tí si quieres volver a habilitarlo en algún sector para, por ejemplo, hacer funcionar un carrusel de imágenes através de un swipe (deslizar de un lado al otro).

Abre ejemplo2.html en tu móvil, te sugiero usar el browser y no el lector de QR: http://www.csslab.cl/ejemplos/touchmove/ejemplo2.html

Ejemplo2

[1]: http://www.csslab.cl/categoria/mobile/ “Enlace en CSSLab.cl a “Categoría : Mobile”” [2]: http://www.csslab.cl/2010/07/28/haptica-en-ios/ “Enlace en CSSLab.cl a “Háptica en iOS””