dijitのAccordionpaneダイナミックの高さにする方法
-
20-09-2019 - |
質問
私は、ペインの高さは、その内容に応じて動的になるように、自動的にそのアコーディオン・ペインのセット高さにAccordionContainer以外に伝える方法を見つけ出すことはできません。
次のコードでは、私はAccordionContainer以外に2つのペインを追加しています。一つは10pxの高さを持っており、別のは90PXを持っていますが、両方のケースでアコーディオン・ペインの高さは10pxのに計算されます。そのは、常に最初の1の高さを取るように見えます。
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>"});
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);
私が使用しています道場1.3.2
解決 2
Iオーバーライドdijit.layout.AccordionContainerの_getTargetHeight機能と高さのために「自動」を返します。スライドペインのアニメーションが正しく動作しませんが、そのないという目立っています。
_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';
}
他のヒント
これは、現在のところ不可能です。
:私はなぜ、どのように(というAccordionContainer以外のコンテナの高さよりも)彼らの自然な高さまで拡大TitlePaneのグループを生成するために説明するために、ブログ/サンプルコードを書きましたのhttp:// WWW。 sitepen.com/blog/2008/10/21/quick-fixes-and-dojo-support/する
これは、単一TitleGroupウィジェット(カスタム、ブログ内のコード)を作り、そしてTitlePaneの内部を置くことが必要です。兄弟のオープン/クローズ状態を管理するために、主にAccordionPane(タイトル=「」属性のhref =「」ロード機能、など)、および代表者のタイトルをクリックするなどの各振る舞います。
あなたのコンテンツに加えて、必要なタイトルペインを保持するのに十分な大きさであるサイズ、例えばにアコーディオンコンテナ自体の寸法を設定してみます。
#accContainer{
height: 120px;
width: 200px;
}
コンテナの起動()の呼び出しがあなたのために子ペインを起動する必要があります。
今、あなたはまた、単に全くコンテナとdijit.TitlePane
sを使用することができます。あなたがクローズオフにそれらを起動するためにペインをインスタンス化するときは、open: false
を渡すことができます。私は一度にオープン1を持つの動作をエミュレートしますdojox.widget.TitleGroup
で囲むと思います。