Ho avuto esattamente lo stesso problema, l'ho risolto con il seguente;
var disableScroll = false;
var scrollPos = 0;
function stopScroll() {
disableScroll = true;
scrollPos = $(window).scrollTop();
}
function enableScroll() {
disableScroll = false;
}
$(function(){
$(window).bind('scroll', function(){
if(disableScroll) $(window).scrollTop(scrollPos);
});
$(window).bind('touchmove', function(){
$(window).trigger('scroll');
});
});
tatto mossa è legata alla finestra come l'evento finestra di scorrimento non viene generato fino a quando tocco spostamento viene completato, permette un'esperienza molto più agevole su iOS!
Questa non è una soluzione perfetta in quanto è possibile "lanciare" la pagina, ma tornerà alla posizione desiderata quando il lancio è completo (poiché l'evento di scorrimento della finestra verrà quindi attivato). Questo perché i browser iOS eliminano molti eventi per le prestazioni. anche le funzioni setTimeout e setInterval non sparano mentre la pagina viene lanciata, anche se il loop non è un'opzione!
Vedi qui http://jsfiddle.net/8T26k/
Non aggiungere contenuti che trabocca pagina ...?! Un altro contesto e un caso d'uso aiuterebbero qui. – deceze
Non positivo se questo dovrebbe funzionare, ma proverei ad aggiungere un div overlay trasparente che copra la vista. Trascinando su iOS probabilmente proverai a scorrere quel div, che non farebbe nulla. –
prova questo: * {overflow: hidden; } –