Ich arbeite an einer iPad-basierten Web-App und muss ein Überschreiben verhindern, damit es weniger wie eine Webseite wirkt. Ich verwende dies derzeit, um das Ansichtsfenster einzufrieren und Overscroll zu deaktivieren:
document.body.addEventListener('touchmove',function(e){
e.preventDefault();
});
Dies funktioniert hervorragend, um Overscroll zu deaktivieren, aber meine App verfügt über mehrere scrollbare Divs, und der obige Code verhindert, dass sie scrollen .
Ich ziele nur auf iOS 5 und höher ab, um Hacky-Lösungen wie iScroll zu vermeiden. Stattdessen verwende ich dieses CSS für meine scrollbaren Divs:
.scrollable {
-webkit-overflow-scrolling: touch;
overflow-y:auto;
}
Dies funktioniert ohne das Dokument-Overscroll-Skript, löst jedoch nicht das Div-Scrolling-Problem.
Gibt es ohne ein jQuery-Plugin eine Möglichkeit, den Overscroll-Fix zu verwenden, aber meine $ ('. Scrollable') Divs auszunehmen?
BEARBEITEN:
Ich habe etwas gefunden, das eine anständige Lösung ist:
// Disable overscroll / viewport moving on everything but scrollable divs
$('body').on('touchmove', function (e) {
if (!$('.scrollable').has($(e.target)).length) e.preventDefault();
});
Das Ansichtsfenster bewegt sich immer noch, wenn Sie über den Anfang oder das Ende des Divs scrollen. Ich würde gerne einen Weg finden, dies ebenfalls zu deaktivieren.