1

borderContainer内にtitlePaneがあり、titlePane内にスクロールバーが含まれるようにしようとしています。スプリッターをドラッグしてtitlePaneを小さくするとスクロールバーが表示されますが、スクロールバーは下部から外れます(titlePaneヘッダーと同じ高さでオフセットされているように見えます)。スクロールバー全体を表示する方法はありますか?

<body class="claro">
<div id="container" data-dojo-type="dijit.layout.BorderContainer" >
    <div id="center" data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'center', layoutPriority: 1">
            center
        </div>
        <div id="bottom" data-dojo-type="dijit.layout.ContentPane" data-dojo-props="region: 'bottom', splitter: 'true'">
             <div class="titlePane" data-dojo-type="dijit.TitlePane" data-dojo-props="title: 'tilepane'">
                 <p>content</p>
                 <p>content</p>
                 <p>content</p>
                 <p>content</p>
                 <p>content</p>
                 <p>content</p>
                 <p>content</p>
                 <p>content</p>
            </div>
    </div> 
 </div>    
</body>

</ p>

これがcssです

html, body {
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
}

#container {
    width: 100%;
    height: 100%;
}
#bottom {
     padding: 0;
     height: 100px;
}    
.claro .dijitTitlePaneContentOuter {
    height:100%;
    overflow:auto;
}

これが実際の例ですhttp://jsfiddle.net/mMTdU/1/

4

1 に答える 1

2

私はこれを解決できたので、他の誰かが同様の問題に遭遇した場合に役立つことを願っています. クラスを簡単に拡張し、borderContainer によって呼び出されるサイズ変更関数をオーバーライドできます。

dojo.addOnLoad(init);

function init() {
    dojo.safeMixin(dijit.byId("titlePane"), {
        resize: function() {
            this.inherited(arguments);

            this.hideNode.style.height = (dojo.marginBox(this.domNode).h - dojo.marginBox(this.titleBarNode).h).toString() + "px";
        }
    });

    // set initial height
    var titlePane = dijit.byId("titlePane");
    titlePane.hideNode.style.height = (dojo.marginBox(titlePane.domNode).h - dojo.marginBox(titlePane.titleBarNode).h).toString() + "px";
}​

100% の高さを与えるのではなく、titlePane 内のコンテンツ div の高さを計算して設定する必要があります。更新された jsfiddle リンクhttp://jsfiddle.net/mMTdU/2/で動作することがわかります

于 2012-10-23T04:35:33.720 に答える