Question

Je ne peux pas comprendre comment dire la accordioncontainer de régler la hauteur de son volet d'accordéon à l'auto pour que la hauteur du volet est dynamique en fonction de son contenu.

dans le code suivant, je suis en ajoutant deux volets à un accordioncontainer. L'une a une hauteur de 10px et un autre a 90px mais dans les deux cas, la hauteur du volet accordéon est calculé à 10px. On dirait que sa prenant toujours la hauteur de la première.

var accordionContainer = new dijit.layout.AccordionContainer({'id':'accContainer'}).placeAt("test");
var accordPane = new dijit.layout.ContentPane({"title": "test", "content":"<div style='height:10px'>sdfsdfsdf</div&gt;"});
var accordPane2 = new dijit.layout.ContentPane({"title": "test1", "content":"<div style='height:90px'>sdfsdfsdf</div>"});

accordionContainer.addChild(accordPane);
accordionContainer.addChild(accordPane2, 1);
accordPane.startup();
accordPane2.startup();
accordionContainer.startup();
accordionContainer.selectChild(accordPane2);

J'utilise dojo 1.3.2

Était-ce utile?

La solution 2

I la fonction de l'emporterait sur _getTargetHeight de dijit.layout.AccordionContainer et retourne toujours « auto » pour la hauteur. Animation des vitres coulissantes ne fonctionnera pas correctement mais son pas notable.

_getTargetHeight: function(/* Node */ node){
// summary:
//For the given node, returns the height that should be
//set to achieve our vertical space (subtract any padding
//we may have).
//This is used by the animations.

//var cs = dojo.getComputedStyle(node);
//return Math.max(this._verticalSpace - dojo._getPadBorderExtents(node, cs).h, 0);
return 'auto';
}

Autres conseils

Il est actuellement impossible. J'ai écrit un code blog / échantillon pour expliquer pourquoi et comment générer un groupe de ce TitlePane qui étendent à leur hauteur naturelle (plutôt que la hauteur du conteneur pour le AccordionContainer):

http: // www. sitepen.com/blog/2008/10/21/quick-fixes-and-dojo-support/

Il nécessite de faire un seul widget TitleGroup (sur mesure, le code dans le blog), et en plaçant l'intérieur de TitlePane. Chaque plupart du temps comme un se comportent AccordionPane (avec title = « » attributs, href = « » capacités de chargement, etc.) et le titre des délégués clique pour gérer l'état ouvert / fermé de frères et sœurs.

essayez de régler les dimensions sur le conteneur d'accordéon lui-même à une taille qui est assez grand pour contenir votre contenu ainsi que les vitres titre nécessaires, par exemple.

#accContainer{
  height: 120px;
  width: 200px;
}

Le démarrage () appel au conteneur devrait commencer les volets de l'enfant pour vous.

Maintenant, vous pouvez aussi utiliser dijit.TitlePanes sans récipient du tout. Vous pouvez passer open: false lorsque vous instancier les vitres pour les commencer fermé. Je pense que les enfermant dans un dojox.widget.TitleGroup émule le comportement d'avoir 1 ouvert à la fois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top