Scrollen funktioniert nicht auf Android Chrome nur
Für einige Grund, scrollen funktioniert nicht auf Android-Geräte im Chrome-browser nur.
Sehen Sie den Ort an Peshkuiarte.com/mobile
Habe ich versucht:
$(document).ready(function() {
$('body').css('touch-action', 'auto');
});
Ich kann nicht scheinen, um es herauszufinden ... Jede Hilfe wäre sehr geschätzt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Durch scrollen meinst du ziehen die Seite mit dem finger am Handy?
Du eingestellt hast
-webkit-user-drag: none;
als inline-Stil für den Körper, das könnte die Ursache sein.Es ist ein Webkit-spezifische Eigenschaft:
Unterstützt durch Chrom 1-17 und Safari 3-5.1: http://www.browsersupport.net/CSS/-webkit-user-drag
hatten wir dasselbe problem auf Chrome 40.0... und wir fest mit der css-Lösung. Vielleicht ist es nicht sauber, aber funktioniert für uns:
In meinem Fall, die ich gefunden habe
touch-action: none
Hinzugefügt ambody
element.Entfernen Sie aktiviert das scrollen im android-chrome.
Quelle: https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action
Hoffe, es hilft den Menschen im Umgang mit legacy code 🙂
e.preventDefault
Dies war der code, den ich verwendet zum erstellen eines swipeable navigation Schublade, weil das scrollen nicht funktioniert .Nur das entfernen der
e.preventDefault();
aus dem obigen code, der mein problem gelöstIch bin nicht wirklich sicher über die Frage, Sie sagen, "scrollen", aber die akzeptierte Antwort ist die Rede von den "drag". Also ich werde Euch geben, was ich denke, Sie Fragen (die nicht in der Lage, um zu Blättern innerhalb eines Bereichs auf ein mobile).
Die einfachste Lösung ist ein CSS-eher als ein JS ein. Wenn Sie haben einen Bereich auf Ihrer Seite, müssen Sie scrollen, zum Beispiel einen code-block auf einem tech-blog können Sie festlegen, position, bezogen auf die Fläche und haben overflow-x auto. Auf den Körper, werden Sie brauchen, um es sich nicht bewegen, wenn Sie den Bildschirm berühren.
pre {
white-space: pre-wrap;
overflow-y: auto;
position: relative;
}
html,body{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
Sie können sehen, diese Lösung funktioniert auf meinem blog, wenn Sie Blick auf den code-snippet Abschnitte und versuchen Sie, und Blättern Sie über chrome mobile.(http://fullstack.life/mapping_arrays.html)
pointer-events
Stieß ich auf ein weiteres Problem heute und ich werde diese hier zur Referenz. Wenn Sie das element mit der
overflow-y: scroll;
setzt seinepointer-events: none;
oder erbt, dann ist es auch nicht funktionieren. Auf dieser Ebene, Mauszeiger-events müssen wieder aktiviert werden mit:Hier ist die Lösung für dieses Problem, das für mich gearbeitet.
Beim Aufruf der niceScroll Funktion
$("body").niceScroll();
im javascript-Klasse, es scheint das hinzufügen von inline-Formatvorlagen von:overflow-y: visible
auf Ihren Körper-element (weil es inline, überschreibt Sie alle vorherigenoverflow: hidden
dass Sie geschrieben haben könnte, in der css-Datei.Fügen Sie einfach
overflow: hidden ! important
im css Ihrer Körper element.Stellen Sie außerdem sicher, dass Ihre html element hat Stil