9

私は、ドラッグ可能、サイズ変更可能、折りたたみ可能、閉じることができ、最大化および最小化できるパネルを次のように作成しようとしています。

サイズ変更によってコンテンツがオーバーフローする場合は、ポートレット コンテンツのスクロールも必要です。コンテンツがあふれていなくても、設定overflow:autoするとスクロールが来ます。

.portlet {
    position: absolute;
    overflow:auto !important;
}

ここで私のコードとデモを確認できますパネルコード
助けていただければ幸いです。前もって感謝します!!

4

3 に答える 3

1

私は掘り下げて、このチュートリアルを見つけました-jQuery UIでWindowsのようなインターフェイスを作成します

ここにjsFiddleとコードがあります-

  var _init = $.ui.dialog.prototype._init;
    $.ui.dialog.prototype._init = function() {
        _init.apply(this, arguments);

        var dialog_element = this;
        var dialog_id = this.uiDialogTitlebar.next().attr('id');

        this.uiDialogTitlebar.append('<a href="#" id="' + dialog_id + 
        '-minbutton" class="ui-dialog-titlebar-minimize ui-corner-all">'+
        '<span class="ui-icon ui-icon-minusthick"></span></a>');

        $('#dialog_window_minimized_container').append(
            '<div class="dialog_window_minimized ui-widget ui-state-default ui-corner-all" id="' + 
            dialog_id + '_minimized">' + this.uiDialogTitlebar.find('.ui-dialog-title').text() + 
            '<span class="ui-icon ui-icon-newwin"></div>');

        $('#' + dialog_id + '-minbutton').hover(function() {
            $(this).addClass('ui-state-hover');
        }, function() {
            $(this).removeClass('ui-state-hover');
        }).click(function() {
            dialog_element.close();
            $('#' + dialog_id + '_minimized').show();
        });

        $('#' + dialog_id + '_minimized').click(function() {
            $(this).hide();
            dialog_element.open();
        });
    };

        $(document).ready(function() {
            $('#create_button').button().click(function() {
                var create_dialog = $('#dialog_window_1');
                var create_button = $(this);
                if( create_dialog.dialog('isOpen') ) {
                    create_button.button('option', 'label', 'Create a new Window');
                    create_dialog.dialog('close');
                } else {
                    create_button.button('option', 'label', 'Close Window');
                    create_dialog.dialog('open');
                }
            });

            $('#dialog_window_1').dialog({
                width: 'auto',
                height: 'auto',
                autoOpen : false,
                buttons: [
                    {
                        text: 'Create',
                        click: function() {
                            var div_count = $('.dialog_window').length + 1;
                            var div_id = 'dialog_window_' + div_count;
                            var div_title = $('#new_window_title').val();
                            var div_content = $('#new_window_content').val();
                            var buttons = new Array();
                            if( $('#alertbutton').is(':checked') ) {
                                buttons.push({
                                    text: 'ALERT',
                                    click: function() {
                                        alert('ALERTING from Dialog Widnow: ' + div_title);
                                    }
                                });
                            }

                            if( $('#closebutton').is(':checked') ) {
                                buttons.push({
                                    text: 'CLOSE',
                                    click: function() {
                                        $('#' + div_id).dialog('close');
                                    }
                                });
                            }

                            $('body').append('<div class="dialog_window" id="' + div_id + '">' + div_content + '</div>');

                            var dialog = $('#' + div_id).dialog({
                                width: 'auto',
                                height: 'auto',
                                title : div_title,
                                autoOpen : true,
                                buttons: buttons
                            });
                        }
                    }
                ]
            });
            $('#buttonlist').buttonset();
        });`
于 2013-03-27T02:22:31.430 に答える
0

css コードを次のように変更します。

.portlet {
    position: absolute;
}
.portlet-content {
    overflow:auto !important;
}
于 2012-12-14T08:40:51.850 に答える
0

jsFiddle でスクロールバーを引き起こしているのはui-resizable-handle要素です。

これらの CSS ステートメントを追加すると、必要になるまでスクロールバーが削除され、ドラッグ ハンドルの機能に影響がないように思われます。

.ui-resizable-s { bottom: 0 !important }
.ui-resizable-e { right: 0 !important }

ここに更新されたjsFiddleがあります

余談として。jsFiddle HTML 領域にあった jquery スタイルシート リンクを削除すると動作が良くなるように見えますが、削除すると開始位置が変わります。したがって、実際のコードで正しく機能することを期待して残しました。

于 2013-05-18T10:21:42.523 に答える