wake-up-neo.net

Verhindern Sie das Wischen zwischen Webseiten in iPad Safari

Durch Wischen vom linken und rechten Rand des Safari-Browsers meines iPad wird zwischen den aktuell geöffneten Webseiten gewechselt. Gibt es eine Möglichkeit, dies zu verhindern?

Ich habe versucht, am Rand der Seite touchstart- und touchmove-Handler hinzuzufügen, nämlich stopPropagation und preventDefault, aber sie scheinen keine Wirkung zu haben, auch touch-action CSS.

Eine ähnliche Frage wurde im Jahr 2014 mit Antworten auf das Negative gestellt: iOS 7 - Gibt es eine Möglichkeit, die Swipe-Funktion zum Zurück- und Weiterleiten in Safari zu deaktivieren?

Gibt es jetzt 2018 einen Arbeitsplatz?

4

Apple hat diese Richtlinien nach iOS9 bereitgestellt.

Die Anleitung lässt Sie deaktivieren 

  1. Scrollen 

    funktion touchMove (Ereignis) {

    // Prevent scrolling on this element
    
    event.preventDefault();
    
    ... 
    

    }

  2. Prise und Zoom

    funktion gestureChange (Ereignis) {

    // Disable browser zoom
    
    event.preventDefault();
    
    ...
    

    }

Sie können eine Wischgeste wie folgt identifizieren:

  1. Beginnen Sie mit der Geste, wenn Sie ein Touchstart-Ereignis mit einem Zielpunkt Erhalten.
    1. Wenn Sie zu irgendeinem Zeitpunkt ein Ereignis Mit> 1 Berührungen erhalten, brechen Sie die Geste ab. 
    2. Fahren Sie mit der Geste fort, wenn Sie ein Touchmove-Ereignis Erhalten, meist in x-Richtung. 
    3. Brechen Sie die Geste ab, wenn Sie ein Touchmove-Ereignis (.____.) Erhalten, in der Regel die y-Richtung. 
    4. Beenden Sie die Geste, wenn Sie ein Touchend-Ereignis (.____.) Erhalten.

Der vollständige Leitfaden ist Poster hier .

Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.

Nitin, Defuzed

1
Nitin K.

Es scheint keine Möglichkeit zu geben, diese Funktion zu deaktivieren. Als Workround habe ich festgestellt, dass eine Totzone von 24px auf beiden Seiten der Seite ausreicht, um eine unbeabsichtigte Navigation zu stoppen.

Hier ist mein CSS:

body {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 24px;
  right: 24px;
  background-color: #ccc;
}

Durch das Erstellen des Körpers position: fixed wird auch Safari der lästige Overscroll/Bounce-Effekt gestoppt.

0

Versuchen Sie dies im <body>-Tag:

onload='ontouchmove()="return(function(event) { event.preventDefault(); event.stopPropagation(); return(false); } );"'

Ich kann mir vorstellen, dass es einige Nebeneffekte geben kann, wenn man IOS nicht über das Bewegen informiert, aber für SPW sind sie wahrscheinlich gering.

0
G. Andrews