Ich habe ein Popup-Fenster des JQuery-UI-Dialogfelds, in dem ein Formular angezeigt wird. Durch Auswahl bestimmter Optionen im Formular werden neue Optionen im Formular angezeigt, wodurch es größer wird. Dies kann zu einem Szenario führen, in dem die Hauptseite eine Bildlaufleiste und das Dialogfeld der JQuery-Benutzeroberfläche eine Bildlaufleiste enthält. Dieses Szenario mit zwei Bildlaufleisten ist für den Benutzer unansehnlich und verwirrend.
Wie kann ich das Dialogfeld der JQuery-Benutzeroberfläche vergrößern (und möglicherweise verkleinern), damit es immer in den Inhalt passt, ohne dass eine Bildlaufleiste angezeigt wird? Ich würde es vorziehen, wenn nur eine Bildlaufleiste auf der Hauptseite sichtbar ist.
Antworten:
Update: Ab jQuery UI 1.8 ist die Arbeitslösung (wie im zweiten Kommentar erwähnt) zu verwenden:
Verwenden Sie die Option autoResize: true. Ich werde veranschaulichen:
Hier ist ein funktionierendes Beispiel: http://jsbin.com/ubowa
quelle
Die Antwort ist, die einzustellen
Eigenschaft beim Erstellen des Dialogs. Damit dies funktioniert, können Sie keine Höhe für den Dialog festlegen. Wenn Sie also in der Erstellungsmethode oder über einen beliebigen Stil eine feste Höhe in Pixel für das Dialogfeld festlegen, funktioniert die Eigenschaft autoResize nicht.
quelle
Dies funktioniert mit jQuery UI v1.10.3
quelle
Ich habe die folgende Eigenschaft verwendet, die für mich gut funktioniert:
quelle
Höhe wird auf Auto unterstützt.
Breite ist nicht!
Um eine Art Auto auszuführen, ermitteln Sie die Größe des angezeigten Divs und stellen Sie das Fenster mit ein.
Im C # -Code ..
quelle
Wenn Sie es für IE7 benötigen, können Sie die Option undokumentiert, fehlerhaft und nicht unterstützt nicht verwenden
{'width':'auto'}
. Fügen Sie stattdessen Folgendes zu Ihrem hinzu.dialog()
:Ob
.scrollWidth
das Auffüllen auf der rechten Seite enthalten ist, hängt vom Browser ab (Firefox unterscheidet sich von Chrome). Sie können also entweder eine subjektive "ausreichend gute" Pixelanzahl hinzufügen.scrollWidth
oder diese durch Ihre eigene Breitenberechnungsfunktion ersetzen.Möglicherweise möchten Sie zu
width: 0
Ihren.dialog()
Optionen hinzufügen, da diese Methode die Breite niemals verringert, sondern nur vergrößert.Getestet für IE7, IE8, IE9, IE10, IE11, Firefox 30, Chrome 35 und Opera 22.
quelle
tat, was ich brauchte, um die Breite des Dialogfelds zu ändern.
quelle