iScroll lässt keine Objekte klicken
Ich bin mit iScroll4 und es funktioniert Super!!!
Dies sind die Funktionen, die ich verwenden, um init, aktualisieren und Ende iScroll:
function iniciarIscroll(){
/*En ie7 no lo usamos*/
if(!ie7){
$(document).ready(function() {
myScroll1 = new iScroll('nvl1');
myScroll2 =new iScroll('nvl2');
/*document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', setTimeout(function () { loaded(); }, 200), false);*/
});
}
return false;
}
function refrescarIscroll(){
if(!ie7){
myScroll1.refresh();
myScroll2.refresh();
}
return false;
}
function terminarIscroll(){
if(!ie7){
myScroll1.destroy();
myScroll1 = null;
myScroll2.destroy();
myScroll2 = null;
}
return false;
}
Das problem ist, es wird nicht lassen <a>
oder <input>
oder irgendetwas angeklickt werden (oder konzentriert, ich bin mir nicht sicher); auch css :hover oder :focus wird nicht angewendet; aber es würde Feuer-Ereignisse in javascript wie
.hover() or .click()
Irgendeine Idee, wie dieses Problem zu lösen, falls möglich?
InformationsquelleAutor der Frage Toni Michel Caubet | 2011-12-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hat der Autor kommentierte, dass form-Kompatibilität ist glitchy - es ist ein bekanntes Problem und er arbeitet an einem fix für die nächste version. Jemand anderes hat kommentiert in den Foren:
Links sollten in Ordnung sein und die Arbeit in den demos vorhanden. Hast du auskommentiert den
e.preventDefault()
rufen Sie in Ihrem init-Skript, das die üblichen Täter. Vielleicht ist die form Kompatibilitätsproblem ist, die links auch?Als für das hover-Ereignis, was ich sagen kann, dies sollte aktiviert werden, wenn ein element getappt.
Hoffe, das hilft ein wenig. Worst-case-Szenario - Schrott code und beginnen Sie mit einem demo-Seite von dem Projekt ab, an Ihre Bedürfnisse anpassen eine Zeile zu einem Zeitpunkt und zu halten, Sie zu testen. Sie werden bald wissen, welche änderung bricht das beabsichtigte Verhalten.
InformationsquelleAutor der Antwort Tak
Brauchen Sie nur, um diese änderungen in den loader des iscroll:
Ändern Sie diese Zeile:
:
InformationsquelleAutor der Antwort yenssen
Für mich, ich muss nur hinzufügen, klicken Sie auf: true in der letzten Zeile...
Verbrachte den ganzen Tag debugging und die Implementierung aller vorgeschlagenen Lösungen ohne Erfolg...
InformationsquelleAutor der Antwort Zennichimaro
Einer Arbeit um, die ich verwendet habe, ist "einfrieren" der iscroll, wenn ich will, dass die Benutzer in der Lage sein, um Sie zu Bearbeiten. Die Inkompatibilität, die iScroll hat mit Eingängen verbunden ist, so weit ich erzählen kann, um die css-Transformationen in Kombination mit der touch-Unterstützung gilt es, den Inhalt in die scroller. Wenn Sie vorübergehend deaktivieren Sie die scroller, können Sie den Benutzer zur Eingabe von Werten. Der trick ist, um sicherzustellen, dass die aktuelle scroll-Position der Inhalt bewahrt wird, auf deaktivieren. Wenn "frozen" ein Benutzer kann Aktualisierung der Eingänge im sichtbaren Bereich. Der Nachteil ist, dass der scroller nicht scrollen während diesem Zustand. Sie haben zu tauen es auf irgendein Ereignis.
Fügte ich diese Funktionen auf der iScroll.Prototyp um diese Arbeit zu machen:
Aufrufen oder einfrieren, es würde wie folgt Aussehen:
Auftauen es würde wie folgt Aussehen:
Natürlich müssen Sie integrieren diese in Ihr eigenes Projekt irgendwie, aber es hat für mich gearbeitet. Es ist nicht ideal, so freue ich mich auf die iScroll update. Warnung: dies ist nicht getestet im IE, damit ich nicht bürgen für Sie da. Ich hoffe, dies ist zumindest ein Anfang, um Ihnen helfen, einen work around.
InformationsquelleAutor der Antwort Ben L
Als ich zum ersten mal entdeckt, iScroll, ich dachte, es war die Lösung für viele meiner Probleme. Dann dieses Problem etwas mir große Zeit. Beim Versuch, einen workaround finden, ich kam mit dieser pull-request.
Es ist ein Hinweis auf die pull-Anforderung, andere, bessere, Lösung gefunden wurde, obwohl ich nicht sicher bin, welche pull-request ist/war soll um das Problem zu beheben. Ich werde sehen, wenn ich genauere Infos vom Autor dieser Notiz.
Update: Der entsprechende pull-request gefunden werden kann hier. Ich hatte noch keine Gelegenheit es zu testen, aber (ich hoffe, um zu bestätigen, Android-Unterstützung später heute.)
InformationsquelleAutor der Antwort psema4
Ich habe auch daran gearbeitet, die Dinge scrollen reibungslos in das mobile Umfeld und iscroll war eine der Bibliotheken, die ich als in meiner Suche nach dem richtigen Werkzeug. Andere Antworten vorgeschlagen haben, wie Sie Sie beheben können, die Ihre spezifischen problem, aber ich würde eigentlich empfehlen die Verwendung von entweder Scroll-Fähigkeit (von Joe Hewitt) oder touchscroll (von David Aurelio). Ich denke, dass die Scroll-Fähigkeit tatsächlich bietet die beste Atmosphäre, aber es ist nicht wirklich getan, und Sie würden am Ende vor den gleichen oder ähnlichen Themen. Ich persönlich bin mit touchscroll für ein Projekt von mir und ich empfehle es.
Ich in benutzerdefinierten Klick-Aktionen und timeout prüfen, wenn ich war das Experimentieren mit iscroll vor ein paar Wochen in meinem Projekt und ich Tat dies durch das auskommentieren der e.preventDefault() auf den Anfang der Note und einfügen von einigen meiner eigenen Funktionen zu fangen, wenn es tatsächlich scrollt. In Ihrem Kern sind diese Bibliotheken, die alle auf die gleiche Weise arbeiten (abfangen von Ereignissen und verhindern, dass Sie, läuft css-Transformationen, um glatter als DOM-Neuzeichnen Animationen, dann künstlich feuern alle events, die gefeuert werden sollte). Dies bedeutet, dass die anderen Weg, Sie können es zu beheben ist zu finden, wenn die Veranstaltung von der klicken Sie auf für Ihre spezifische Elemente passieren sollte und Feuer es manuell in den code. In touchscroll hört es für Veranstaltungen auf dem obersten element, so können Sie überschreiben Verhalten, indem Sie einfach stoppen sprudelt... ich kann mich nicht erinnern, ob iscroll macht das gleiche.
Diese (glatt, native Gefühl, animation im Handy) ist immer noch ein Gebiet, das am Rande der verschiedenen Technologien, so dass niemand die komplette Lösung noch nicht. Ich würde erwarten, dass in wenigen Jahren mobile verbessern, so dass der mobile Browser nur handle scroll-Ereignisse nativ sowieso, aber bis dahin sind wir gezwungen, die hacken zusammen Lösungen, wie diese. Viel Glück!
InformationsquelleAutor der Antwort hackartist
Android browser Fehler ist das Ergebnis eines sehr alten version von WebKit Android-innen, die auch innerhalb von Android 4.3. Die Ursache des Fehler - falsche Verarbeitung des click-Ereignis, das iScroll sendet Sie zurück an den browser (entfernen preventDefault nur Stoppt das senden dieses Ereignis click)
Die Android-Chrome-browser ist frei von diesem Fehler, da es ein Upgrade WebKit-Bibliothek im inneren.
Warten auf Android WebKit upgrade von Google.
InformationsquelleAutor der Antwort Anatoliy Shuba
Kommentar aus
in
#pageWrapper
imstyles.css
In meinem Fall, diese lösen die oben unklickbaren Problem.
InformationsquelleAutor der Antwort icarus2n
Versuchen, diese
InformationsquelleAutor der Antwort sugar