J'ai une fenêtre de dialogue d'interface utilisateur JQuery qui affiche un formulaire. En sélectionnant certaines options sur le formulaire, de nouvelles options apparaîtront dans le formulaire, le faisant grossir. Cela peut conduire à un scénario dans lequel la page principale a une barre de défilement et la boîte de dialogue JQuery UI a une barre de défilement. Ce scénario à deux barres de défilement est inesthétique et déroutant pour l'utilisateur.
Comment puis-je faire grandir la boîte de dialogue de l'interface utilisateur JQuery (et éventuellement la réduire) pour qu'elle s'adapte toujours à son contenu sans afficher de barre de défilement? Je préférerais que seule une barre de défilement sur la page principale soit visible.
Réponses:
Mise à jour: à partir de jQuery UI 1.8, la solution de travail (comme mentionné dans le deuxième commentaire) consiste à utiliser:
Utilisez l'option autoResize: true. Je vais illustrer:
Voici un exemple de travail: http://jsbin.com/ubowa
la source
La réponse est de définir le
propriété lors de la création de la boîte de dialogue. Pour que cela fonctionne, vous ne pouvez pas définir de hauteur pour la boîte de dialogue. Ainsi, si vous définissez une hauteur fixe en pixels pour la boîte de dialogue dans sa méthode de création ou via n'importe quel style, la propriété autoResize ne fonctionnera pas.
la source
Cela fonctionne avec jQuery UI v1.10.3
la source
J'ai utilisé la propriété suivante qui fonctionne bien pour moi:
la source
La hauteur est prise en charge sur auto.
La largeur n'est pas!
Pour faire une sorte d'auto, obtenez la taille du div que vous affichez, puis définissez la fenêtre avec.
Dans le code C #.
la source
Si vous en avez besoin pour fonctionner dans IE7, vous ne pouvez pas utiliser l' option non documentée, boguée et non prise en charge
{'width':'auto'}
. Au lieu de cela, ajoutez ce qui suit à votre.dialog()
:L'inclusion
.scrollWidth
du remplissage du côté droit dépend du navigateur (Firefox diffère de Chrome), vous pouvez donc soit ajouter un nombre de pixels subjectif «assez bon».scrollWidth
, soit le remplacer par votre propre fonction de calcul de largeur.Vous voudrez peut-être inclure
width: 0
parmi vos.dialog()
options, car cette méthode ne diminuera jamais la largeur, augmentez seulement la.Testé pour fonctionner dans IE7, IE8, IE9, IE10, IE11, Firefox 30, Chrome 35 et Opera 22.
la source
fait ce dont j'avais besoin pour redimensionner la largeur de la boîte de dialogue.
la source