2012-05-11 13 views
6

Me gustaría deshabilitar el sobredespliegue de iOS en una aplicación web, pero aún así permitir que se desplace el cuerpo.Deshabilitar iOS Despliegue excesivo pero permitir desplazamiento del cuerpo

$(document).on('touchmove', function(e) { 
    e.preventDefault(); 
}); 

desactiva el desplazamiento por completo (como era de esperar).

¿Hay alguna manera de hacer lo que quiero hacer?

+0

es una respuesta a una pregunta relacionada, aunque cubre este tema, así, http://stackoverflow.com/questions/2890361/disable-scrolling-in-an-iphone- web-application/26853900? stw = 2 # 26853900. – Gajus

+0

¡He encontrado este script que soluciona este problema! :) https://github.com/lazd/iNoBounce –

Respuesta

7

que tenía más o menos la same issue. Esto debería ayudar a:

// Disable overscroll/viewport moving on everything but scrollable divs 
$('body').on('touchmove', function (e) { 
     if (!$('.scrollable').has($(e.target)).length) e.preventDefault(); 
}); 
+6

Uno desafiar con esto es que si has desplazado todo el camino hacia la parte superior o inferior, ¡aún puedes sobredesplazar toda la página! – Chet

2
document.body.addEventListener('touchmove',function(e){ 
    if(!$(e.target).hasClass("scrollable")) { 
     e.preventDefault(); 
    } 
}); 

Prueba esto Acabo de recibir a través de Google

+0

Yer, así que agregué la clase desplazable al cuerpo (porque eso es lo que quiero ser capaz de desplazar) pero aún deja el cuerpo sin desplazamiento (y elimina el desplazamiento) –

Cuestiones relacionadas