2016-03-25 16 views
13

Chcę zapobiec odświeżaniu/odświeżaniu mobilnego chrome (zwłaszcza iOS chrome). Moja aplikacja internetowa ma pionowe panoramowanie z widokiem szerokości urządzenia i wysokości urządzenia, ale za każdym razem, gdy przesuwa się w dół, Chrome mobilny odświeża się z powodu domyślnej funkcji przeglądarki. Dodatkowo, w przeglądarce Safari, ekran toczy się podczas zdarzenia panoramowania. Chcę wyłączyć te ruchy.Zapobieganie odświeżaniu/odświeżaniu mobilnego chrome

Oczywiście, wypróbowałem event.preventDefault(); i dotykowy: brak; Ale to nie wygląda na pracę. Czy powinienem dodać eventListner i akcję dotykową "na body tag"? Oczekuję użytecznej odpowiedzi z przykładem.

+1

Dodaj minimalny przykładowy kod, aby uzyskać dobre odpowiedzi – Raju

+0

@Raju znalazłem prosty przykładowy kod tutaj! thx> O < http://output.jsbin.com/qofuwa/2/quiet –

+1

Nie o to mi chodziło. Publikowanie [Minimalny, kompletny i sprawdzalny przykład (MCVE)] (http://stackoverflow.com/help/mcve), który pokazuje twój problem, pomoże Ci uzyskać lepsze odpowiedzi. – Raju

Odpowiedz

7

Ponieważ mobilny Chrome> = 56 detektory zdarzeń są pasywne domyślnie i detektorów zdarzeń pasywnych nie może zapobiec domyślne więcej. See here

Trzeba użyć aktywne detektory zdarzeń zamiast tak:

document.addEventListener('touchstart', touchstartHandler, {passive: false}); 
document.addEventListener('touchmove', touchmoveHandler, {passive: false}); 

Oto przykład roboczych:

https://output.jsbin.com/niyukadizu/quiet

https://output.jsbin.com/niyukadizu

2

Spróbuj tego.

body { 
    /* Disables pull-to-refresh but allows overscroll glow effects. */ 
    overscroll-behavior-y: contain; 
} 

To zadziałało dobrze dla mnie. Miałem dziwne problemy z przewijaniem spowodowane innymi hackami javascript. Przeczytaj ten artykuł, aby uzyskać więcej informacji.

https://developers.google.com/web/updates/2017/11/overscroll-behavior

+0

Tylko to działało dla mnie –

Powiązane problemy