2012-05-11 8 views
6

Ich möchte den iOS Overscroll in einer Webapp deaktivieren, aber trotzdem den Body scrollen lassen.Deaktiviere iOS Overscroll, erlaube aber Body Scrolling

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

deaktiviert Scrollen insgesamt (wie man erwarten würde).

Gibt es eine Möglichkeit zu tun, was ich tun möchte?

+0

Es ist eine Antwort auf eine ähnliche Frage, obwohl es dieses Problem auch bedeckt, http://stackoverflow.com/questions/2890361/disable-scrolling-in-an-iphone- Web-Anwendung/26853900? Stw = 2 # 26853900. – Gajus

+0

Ich habe dieses Skript gefunden, das dieses Problem behebt! :) https://github.com/lazd/iNoBounce –

Antwort

7

ich die same issue ziemlich hatte. Dies soll Ihnen helfen:

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

One Die Herausforderung besteht darin, dass Sie, wenn Sie den ganzen Weg nach oben oder unten gescrollt haben, immer noch die gesamte Seite überstreichen können! – Chet

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

Try this Ich habe gerade in via google

+0

Yer so habe ich die scrollbare Klasse zum Körper hinzugefügt (weil das ist, was ich in der Lage sein soll), aber es lässt immer noch den Körper unscrollable (und entfernt das Overscroll) –

Verwandte Themen