it-swarm.com.de

Beenden von Overscroll / Bounce in Phonegap IOS

Ich verwende die neueste Version von Phonegap auf IOS (ipad)) und kann das vertikale Überscrollen/Bouncen in der gesamten App scheinbar nicht deaktivieren Es sieht ziemlich seltsam aus, wenn Sie nach oben oder unten wischen und die gesamte App auf und ab springt.

Ich habe versucht, UIWebViewBounce auf no in der .plist zu setzen, aber das scheint nichts getan zu haben.

Schätze die Hilfe :)

58
Josh Undefined

Sie müssen eine Eigenschaft in Ihrer config.xml-Datei ändern. Setzen Sie einfach die folgende Einstellung auf true

<preference name="DisallowOverscroll" value="true" />
190
dpfauwadel

Die akzeptierte Antwort hat bei mir nicht funktioniert, ich musste UIWebViewBounce auf false setzen:

<preference name="UIWebViewBounce" value="false" />
18
Yangshun Tay

verwenden Sie für phonegap 3.0 über der Version die folgende Syntex in der Datei config.xml und es wird 100% funktionieren

<preference name="DisallowOverscroll" value="true"/>
14
Mayur

Wenn Sie config.xml ohne Glück <preference name="DisallowOverscroll" value="true"/> Hinzufügen, ändern Sie möglicherweise die falsche Datei. Durchsuchen Sie stattdessen das gesamte Telefonbuch nach "DisallowOverscroll". Sie sollten mehrere Instanzen finden. Ändern Sie diese in true.

Prost.

6
Jerad

Wenn nichts anderes funktioniert, versuchen Sie, -webkit-overflow-scrolling: touch Aus Ihrem CSS zu entfernen ... wenn Sie es hatten!

4
dom

Verwenden Sie diesen Weg: -

function disallowOverscroll(){
  $(document).on('touchmove',function(e){
    e.preventDefault();
  });
  $('body').on('touchstart','.scrollable',function(e) {
    if (e.currentTarget.scrollTop === 0) {
      e.currentTarget.scrollTop = 1;
    } else if (e.currentTarget.scrollHeight
              === e.currentTarget.scrollTop
                  + e.currentTarget.offsetHeight) {
      e.currentTarget.scrollTop -= 1;
    }
  });
  $('body').on('touchmove','.scrollable',function(e) {
    e.stopPropagation();
  });
}
disallowOverscroll();

Für weitere Informationen oder Tipps & Tricks lesen Sie bitte diesen Artikel klicken

4
vineet

Danke für alle Antwort. Aber wenn Sie ein Problem in Windows Phone haben, ist hier die Lösung. Gehen Sie einfach zur Datei MainPage.xaml.cs und ersetzen Sie die folgende Funktion.

public MainPage()
    {
        InitializeComponent();
        this.CordovaView.DisableBouncyScrolling = true;
        this.CordovaView.Loaded += CordovaView_Loaded;
    }

Es funktioniert für mich :)

3
Mayur

Es gibt einen Weg, den ich benutzt habe, um dies zu erreichen. aber es ist nicht konventionell, weil es sich um native Codierung handelt. Im MainViewController gibt es eine Methode namens webViewDidFinishLoad. Fügen Sie dies hinzu
theWebView.scrollView.bounces = NO;

innerhalb dieser Methode.

- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
    // Black base color for background matches the native apps
    theWebView.backgroundColor = [UIColor blackColor];
    theWebView.scrollView.bounces= NO;
    return [super webViewDidFinishLoad:theWebView];
}

Da dies nativer ios-Code ist, funktioniert dies in jeder Phonegap/Cordova-Distribution.

3

In der config.xml Ihres Projekts setzen Sie DisallowOverscroll in den Einstellungen für iOS auf true. Standardmäßig ist false, damit die gesamte Ansicht zusammen mit den inneren Elementen der Ansicht gescrollt wird.

<preference name="DisallowOverscroll" value="true" />
3
user3085992

In der config.xml Ihres Projekts setzen Sie DisallowOverscroll in den Einstellungen für iOS auf true.

<preference name="DisallowOverscroll" value="true" />
2
PRBEHERA8

Ich hatte ein ähnliches Problem, konnte es jedoch nicht mit allen Lösungen beheben, die ich bisher gefunden habe (z. B. beim Bearbeiten von config.xml).

Aber zum Schluss wurde einfach die CSS-Eigenschaft des Körpers bearbeitet und dann behoben:

html,body
{
  overflow: auto;
  height:100%;
}
2
Hanho Kim

Versuchen Sie dies, wenn Sie ionic framework user Abc.html file inside content sind.

<ion-content has-bouncing="false">

2

Es ist besser, zwei Elemente in config.xml wie folgt zu ändern:

<preference name="DisallowOverscroll" value="true"/>
<preference name="UIWebViewBounce" value="false" />
1
Nakket

Benutze das:

<preference name="UIWebViewBounce" value="false" />
1
squall leonhart

Das hat bei mir funktioniert. Versuchen Sie, diesen Code in die config.xml-Datei Ihrer phonegap-App einzufügen:

<preference name="DisallowOverscroll" value="true">

1
Akshay Khale

das hat bei meiner App mit phonegap 3.0 funktioniert: Fügen Sie die folgende Zeile zu config.xml hinzu

<preference name="webviewbounce" value="false"/>
1
tschueggi

Für Cordova 7 und ein iPhone 7 + iOS 11.0.3 funktionierte das Ändern des Stammverzeichnisses config.xml und das Hinzufügen dieser Datei hervorragend:

<platform name="ios">
    <preference name="DisallowOverscroll" value="true" />
    <preference name="UIWebViewBounce" value="false" />
    ... (other stuff) ...
</platform>
0
Code Freeze

Nach dem Update der config.xml hatte ich kein Glück, wenn das dein Fall ist, versuche dies.

Für iOS funktioniert iPhone + iOS 11, setzen Sie die Eigenschaft in der Datei CDVThemeableBrowser.m auf YES :

self.disallowoverscroll = YES;
0
user2414596

Öffnen Sie xCode -> suchen Sie und klicken Sie auf config.xml im linken Menü -> und ändern Sie den DisallowOverscroll-Wert false in true. Oder verwenden Sie diesen Code, indem Sie den vorherigen ersetzen.

 <preference name="DisallowOverscroll" value="true" />
0
Somnath