3

コンテンツに応じてペインの高さが動的になるように、accordioncontainer にアコーディオン ペインの高さを auto に設定するように指示する方法がわかりません。

次のコードでは、アコーディオン コンテナーに 2 つのペインを追加しています。1 つの高さは 10px で、もう 1 つの高さは 90px ですが、どちらの場合も、アコーディオン ペインの高さは 10px に計算されます。常に最初のものの高さを取っているように見えます。

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);

私は道場1.3.2を使用しています

4

4 に答える 4

3

現時点では不可能です。(AccordionContainer のコンテナーの高さではなく) 自然な高さに拡張する TitlePane のグループを生成する理由と方法を説明するブログ/サンプル コードを書きました。

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

単一の TitleGroup ウィジェット (カスタム、ブログのコード) を作成し、TitlePane を内部に配置する必要があります。それぞれがほぼ AccordionPane のように (title="" 属性、href="" 読み込み機能などを使用して) 動作し、タイトルのクリックを委任して兄弟の開閉状態を管理します。

于 2009-09-04T12:22:02.310 に答える
2

dijit.layout.AccordionContainer の _getTargetHeight 関数をオーバーライドし、高さに対して常に「auto」を返します。スライド ペインのアニメーションは正しく機能しませんが、それほど目立ちません。

_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';
}
于 2009-09-08T21:10:02.610 に答える
0

アコーディオン コンテナ自体の寸法を、コンテンツと必要なタイトル ペインを保持するのに十分な大きさに設定してみてください。

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

コンテナーで startup() を呼び出すと、子ペインが自動的に起動されます。

于 2009-09-04T03:11:53.473 に答える
0

dijit.TitlePaneこれで、コンテナーをまったく使用せずに s を使用することもできます。open: falseペインをインスタンス化して閉じた状態で開始するときに渡すことができます。dojox.widget.TitleGroupそれらを で囲むと、一度に 1 つ開く動作がエミュレートされると思います。

于 2011-04-12T17:46:35.570 に答える