2010-01-26 6 views
0

J'utilise Eric Martin's sweet 'simplemodal' jQuery plugin. Il fonctionne à merveille et le recommande à tous ceux qui recherchent une solution de dialogue modale basée sur jQuery.jquery.simplemodal-1.3.3.js: positionnement absolu (contre fixe)

Cela dit, j'ai un contenu particulièrement longue que les « besoins » à afficher en modal. Par défaut, l'élément conteneur utilise 'overflow: auto' pour gérer le contenu trop long pour tenir dans la fenêtre du navigateur. Cela fonctionne bien dans la plupart des cas, mais dans ce cas je voudrais que le dialogue reste plein et défile avec le reste de la page (positionné 'absolu' vs 'fixe'). Je peux obtenir ce travail assez facilement en modifiant toute position : « fixe » références dans la source à la position: « absolue » mais suce comme cela signifie tous mes modaux afficheront cette façon ...

Toute personne avoir des idées sur la façon de faire ce travail avec élégance?

Répondre

0

Il semble que vous n'êtes pas défavorable à l'adaptation de la source à vos besoins spécifiques ... donc je le recommande retravaillant afin que vous puissiez fournir les propriétés de positionnement et de débordement via un objet d'options.

+0

Oui, malheureusement, c'est la conclusion I J'en suis venu à ... modifier la source d'Eric pour permettre de spécifier le positionnement via une option supplémentaire. Merci pour votre contribution/vos commentaires! – droo

1

essayer la position d'ajouter: absolue à l'appel modal réel pour cette particulière région div

comme ci-dessous

$ ("# somebutton") cliquez sur (function() {

$('#my-modal-content').modal({ 
     position:absolute 
    }); 
}); 

. J'ai eu le même problème que vous, mais je voulais une bonne chance!

+0

@myself: à moins bien sûr cela est déjà fourni comme sdmiller ci-dessus suggère :-) dans ce cas, il n'y a pas besoin de retravailler la source. – prodigitalson

+0

Ajout de "position: 'absolute'" à l'appel modal, malheureusement, ne semble rien faire du tout ... – droo

+0

Ceci est le formulaire que j'ai suivi pour remplacer la valeur par défaut CSS // Modifier min hauteur et largeur $ ("# échantillon"). modal ({ \t minHauteur: 400, \t minLargeur: 600 }); cet exemple /Définir manuellement la position en utilisant les pourcentages $ ("# sample"). Modal ({position: ["50%", "50%"]}); J'ai trouvé ces pages sur sa page. vous pouvez essayer la position: [absolue] – sdmiller

0

boîte de tailles différentes pour les boutons/fonctions différentes et c'est la façon dont je l'ai résolu. Juste un scrollbar dans le dia se connecter.

+0

Ceci (comme mentionné) est en fait le comportement par défaut ... – droo

0

Vous devrez modifier le code de manière significative, en particulier le code qui traite de IE (IE6 principalement).

Juste changer une position absolue fonctionnerait d'abord pour certains navigateurs, mais certains navigateurs ou un redimensionnement de page (dans un navigateur) serait revenir à une position fixe.

1

C'est ce que je fais:

jQuery('#MyModal').modal({ 
    //options 
}); 
jQuery('#MyModal').parents('.simplemodal-container').css('position', 'absolute'); 
+0

Merci pour ça! Vous pouvez également définir la déclaration en tant qu'option pour ce modal spécifique en définissant OnOpen: function (dialog) {dialog.container.css ('position', 'absolute');}. Ce faisant, vous serez certain de ne rien affecter d'autre. – David

Questions connexes