javascript-Dokument.bereit nicht immer funktioniert, ist iscroll !
Hallo, wir bauen ein mobile web.app mit iScroll zum scrollen. Das problem ist, dass der iScroll scroller hat manchmal Probleme beim laden der Seite auf den ersten.
Dies ist der code, den wir Hinzugefügt (document).ready
um das problem zu lösen, und es tut so meistens, aber einmal in eine Weile, es scheint nicht zu funktionieren.
Unsere Vermutung ist, dass der scroller funktioniert nicht, wenn die Höhe des wrapper - (scrollbaren Bereich) lädt zu langsam, das ist, warum wir Hinzugefügt die document.ready
mit den angegebenen Ergebnisse wie oben.
https://stackoverflow.com/
<script type="text/javascript">
var myScroll;
$(document).ready(function loaded() {
myScroll = new iScroll('wrapper');
});
$(document).ready.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
$(document).ready.addEventListener('DOMContentLoaded', loaded, false);
</script>`
Würden wir uns freuen, etwas Hilfe !
Danke
- die Methode addEventListener nicht unterstützt durch IE ich dachte... möchten Sie vielleicht einen Blick in bind() statt. Auch alle bindet, sollte innerhalb der ready-Funktion.
- jemand neu taggen und hinzufügen von iscroll tag. Ich habe versucht, hinzufügen, aber es gibt keine iscroll tag, iscroll4 ist es.
Du musst angemeldet sein, um einen Kommentar abzugeben.
$(document).ready();
sollte nicht aufgerufen werden, so, wie Sie es nach dem ersten Anruf.Auch es sieht aus wie der Dritte Aufruf, die es versucht, diese zu überschreiben.
Versuchen Sie das folgende.
bereit ist eine Methode, die eine Funktion als parameter und führt, wenn das Dokument gut ist ..ist bereit. so sollten Sie :
Ist die Lösung, die wir uns ausgedacht, für alle Menschen mit iScroll und in der gleichen situation
Vorausgesetzt, Sie sind mit jQuery, was Sie tun müssen, ist die Einleitung iScroll, nachdem das Dokument geladen ist. Lieber nicht die Verwendung von inline-JavaScript, aber wenn Sie wirklich, wirklich haben, um, in den < head > - tag schreiben:
Somit wird nichts passieren, bis das DOM geladen ist, wird Sie Abbrechen aus, alle anderen touchmove-Ereignisse, fügen Sie dann iScroll-Funktionalität, um Ihre div "wrapper".
Wrapper-div muss eine Reihe von Höhe und Breite. Das erste div in wrapper nicht, aber wenn Sie nicht über eine Höhe festlegen, muss es zu schweben, so kann der browser die Berechnung der Höhe dynamisch.
Einen alten thread, aber ich dachte, ich würde werfen in meiner 2 Cent seit dem arbeite ich auf dieser nun, und da .bind() ist veraltet, zu Gunsten von .auf(), und andere lustige Sachen:
Sicher, verbindlich "#wrapper" bedeutet, ich kann noch zu tun haben mit touchmove-Ereignisse in der Kopf-und Fußzeile nicht der Kontrolle der iScroll-Objekt, aber wenn das der Fall ist, dann werde ich capture das Ereignis auf "body", da alle drei divs 'sollte' bubble-up in das body-Objekt.