0

私は dojo の初心者ですが、JavaScript の初心者です。

私は機能をテストし、基本的な dijit.layout.StackContainer を構築しようとしています (宣言とプログラムの両方で)。私が持っているのは、最初の子要素のサイズに応じてスタック コンテナーのサイズが設定されていることです。私が望むのは、配置する要素のサイズに基づいてサイズを変更することです。これどうやってするの?リファレンス ガイド、API ドキュメントなどを調べましたが、何の役にも立たないようです。:(

前もって感謝します

これを機能させる唯一の方法は、StackContainer をアタッチする要素に高さプロパティを定義し、StackContainer のスタイル プロパティを宣言するときに高さプロパティを手動で検索することです。そのようです...

<div id="content" style="height: 100%; background-color: green;"></div>
<script>
    var domNode, controller, container;
    domNode = document.getElementById('content');
    controller = new StackController({
        containerId:"mainStack"
    }).placeAt(domNode);
    container = new StackContainer({
        id: "mainStack",
        isLayoutContainer: true,
        style: "background-color: yellow; height: "+domNode.style.height
    });
    container.addChild(new ContentPane({
        title: "Search for Images...",
        tooltip: "Click here to begin your search.",
        content: searchTemplate
    }));
    container.addChild(new ContentPane({
        title: "View Results..",
        tooltip: "After you search for a topic, click here to view your results.",
        content: resultTemplate
    }));
    container.placeAt(domNode);

    container.startup();
    controller.startup();
</script>

これは機能しますが、道場の経験が不足しているため、私の側ではハックのように感じます。誰か考えやアドバイスはありますか?

4

1 に答える 1

0

doLayoutStackContainerのプロパティを false に設定します。ドキュメントごと:

doLayout
Defined by dijit/layout/StackContainer
If true, change the size of my currently displayed child to match my size

これは、

container = new StackContainer({
   id: "mainStack",
   isLayoutContainer: true,
   style: "background-color: yellow;",
   doLayout:false
});

doLayout:falseまた、子供に必要な場合があります。

于 2012-10-03T12:14:07.400 に答える