Ich habe eine IOS Web App, die nicht gescrollt werden kann. Aus diesem Grund möchte ich das Scrollen deaktivieren. Dazu verwende ich das ontouchmove-Attribut eines Elements und lasse es eine Funktion aufrufen, die element.preventDefault verwendet. Ich kann jedoch kein berührendes Ereignis feststellen, wenn es in einem Text- oder Eingabeelement startet, auch wenn das Element deaktiviert ist! Ich habe auch versucht, das touchmove oder touchstart Event mit diesen Elementen über JavaScript addEventlistener zu verbinden, ohne Erfolg!
Und hier ist mein JavaScript:
%Vor%Danke für jede Hilfe!
Ich denke, ich habe mit der CSS-Eigenschaft "pointer-events" eine große Problemumgehung für dieses Problem gefunden:
%Vor%Dies wird Mobile Safari auf iOS (andere bisher nicht getestete) ignorieren die Textareas zum Scrollen, aber erlaubt Fokus wie üblich zu setzen.
die Thomas Bachem Antwort ist die eine!
Ich habe es in jQuery neu geschrieben. Fügen Sie einfach eine Klasse scrollFix
zu Ihren gewünschten Eingaben hinzu und Sie können loslegen. Oder fügen Sie die Event-Handler mit $('input, textarea')
an alle Eingaben und Textfelder an.
Wenn Sie nun auf eine Eingabe auf iOS 8+ tippen und einen Bildlauf durchführen, wird der gesamte pointer-events
der Eingabe deaktiviert (einschließlich des problematischen Verhaltens). Diese pointer-events
sind aktiviert, wenn wir eine einfache Berührung erkennen.