2

閉じたときに ui-layout-west ペインの幅を特定の寸法に設定しようとしています。デフォルトでは、「トグル」を押すと、この例に見られるように、ペインが完全に閉じられます。私が望むのは、「west-pane」を「40px」に設定し、コンテンツの一部を保持することです。現在、このトラフ CSS を設定できますが、西のペインが消えます。理解を深めるために、私の JsFidle の例を参照してください。

div.ui-layout-resizer.ui-layout-resizer-west.ui-layout-resizer-closed.ui-layout-resizer-west-closed {
    left: 40px !important;
}

この効果を得るにはどうすればよいですか?できるだけ JQuery プラグインの設定に依存し、CSS にはあまり依存しないようにしたいと考えています。

4

1 に答える 1

2

問題は、閉じたということは閉じてなくなったことを意味するので、まだフレームを見ることができないはずだと思います。あなたが正しくやりたいことを理解していれば、閉じるアクションをカスタムコードでオーバーライドすることでそれを偽造することができます。

これには、onclose_start コールバックをオーバーライドし、サイズを設定してから、false を返してペインが閉じないようにする必要があります。これは、システムに関する限り、ペインが実際には閉じられていないことを意味することに注意してください。

以下のコードはそのすべてを行い、西ペインの状態オブジェクトに新しい変数を作成して古いサイズを格納します。作成関数の開始時にそれを定義します (ただし、定義されていなくてもシステムは文句を言いません)。グローバル変数またはその他のストレージを使用することもできます。関数をより一般的にして、西などで機能しないようにすることができます。

システムをどのように機能させたいのか正確にはわかりません。if 条件をいじる必要があるかもしれません。

$(document).ready(function () {
    var mylayout = $("body").layout(
        {west: {
            minSize: 40,
            onclose_start: function() {                     
                var closed_size = 40;          
                var current_size = mylayout.state.west.size;

                if (current_size <= closed_size) { 
                    mylayout.sizePane('west', mylayout.state.west.old_size);                    
                } else { 
                    mylayout.sizePane('west', closed_size);                    
                    mylayout.state.west.old_size = current_size;
                }                    
                return false;
            }}
        });
    mylayout.state.west.old_size = mylayout.state.west.size;
    });
于 2013-07-30T11:15:29.613 に答える