Ziehbar JS-Bootstrap-modal - performance-Probleme
Für ein Projekt bei der Arbeit verwenden wir Bootstrap-Modal-Fenster, in JavaScript. Wir würden gerne einige der windows-beweglichen, sondern läuft in performance-Probleme mit JQuery.
$("#myModal").draggable({
handle: ".modal-header"
});
Beispiel ,
Quelle .
Im IE9 funktioniert es wie erwartet.
In Chrom, horizontale Bewegung funktioniert wie erwartet, und die vertikale ziehen ist eher langsam, aber nicht problematisch.
In Firefox, horizontales ziehen wie erwartet funktioniert, aber die vertikale ziehen ist extrem langsam.
Es ist seltsam, weil die Beispiel-Fenster ist nicht grafisch schwer und JQuery soll zu normalisieren browser-Verhalten. Ich habe versucht dies zu lösen, ohne Verwendung von JQuery draggable, aber ich lief in das gleiche Problem.
So, ich habe ein paar Fragen:
- Ist die langsame Leistung die Schuld der browser, JQuery, Bootstrap oder ist mein code nicht optimal ist?
- Warum gibt es einen Unterschied zwischen horizontalen und vertikalen ziehen?
- Sollte ich einen workaround finden, oder einfach nur vermeiden, Bootstrap zusammen für dynamische popups?
Freundlichen GRÜßEN,
Guido
- Ich bin mit dem gleichen Problem. Irgendwie bei Twitter haben Sie es geschafft es zum laufen zu bringen (der modal-wenn Sie auf einen Benutzer). Zu deiner 3. Frage, ich habe versucht, jQuery-UI, Bootstrap, das ist eine Art Kombination aus beiden, die sollten nicht Konflikt, aber es war zu viel Arbeit, also beschloss ich, geben Sie sich und bleiben mit jQuery UI.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich ein paar Möglichkeiten, um dieses Problem zu beheben.
Hinzufügen dieser zu Ihrer CSS-Datei deaktiviert werden, die
transition
Effekte, während der modal gezogen wird. Es scheint jedoch, dass, sobald der Benutzer das Feld der Fliegen wird nicht korrekt erfolgt, sondern es wird nur verblassen.Alternativ können Sie die folgenden CSS-Datei und die
nofly
- Klasse, um Ihr Modell zu deaktivieren, die Fliegen alle zusammen aber nicht die fade-in:Fand ich, dass auf bootstrap 3, die ich hatte, diese zu überschreiben css-Eigenschaften des modal-dialog:
Fiddle
Full-screen-demo
Dies nicht genau deine Fragen beantworten, aber Sie können versuchen, deaktivieren Sie die
*-transition
Eigenschaften oder die Verringerung der Zeit, die Werte aus der angegebenen0.3s
. Dieser ist definiert in.modal.fade
. Aber dieses Durcheinander wird mit den ersten pop-up-animation zu. Wenn dies nicht akzeptabel ist, können Sie diestart
Veranstaltung derdraggable
widget auf anwenden, um die neuen Stil.Mit Bootstrap 3.3 und jQuery UI 1.1 ich bin das hinzufügen einer Klasse "modal-ziehbar", um das element mit der "modal" - Klasse.
Es bindet an die
.modal-dialog
element in den Container mit der.modal-draggable
Klasse (im Gegensatz zu hier einige Beispiele, die Bindung an die tatsächlichen container).Gibt es einige CSS so Bildlauf für lange Dialoge, noch die Arbeit über die Geräte aller Bildschirmgrößen.
CSS:
JavaScript:
Sehen, die JS Fiddle hier für eine demo:
http://jsfiddle.net/jcosnn6u/3/
NB: bisher habe ich nur getestet in Chrome, Firefox und Safari sowie mit mobilen Geräten, also kann nicht kommentieren, die Kompatibilität mit Internet Explorer.
Bevorzuge ich mit jqueryui. Mehr Details über ziehbar API hier: http://api.jqueryui.com/draggable/
Obwohl die vorgeschlagene CSS-änderungen, die für mich gearbeitet, ich wusste nicht, wie der dialog wird auf der linken Seite angezeigt zunächst. Aktualisieren jquery-UI 1.9 bis 1.11 wurde das Problem behoben, ich sah