javascript - 使用 jquery UI 可调整大小的分屏 div

标签 javascript html jquery-ui

我有一个设计涉及 html 中的拆分面板 View ,类似于 winforms 拆分面板。我一直在用 jQuery UI - Resizable 进行实验我喜欢这个功能,我似乎无法协调两个 div 的大小调整。当前代码的问题是两个 div 调整大小时彼此远离,而不是一个接一个。如何让两个 div 协同工作?

<html>
    <head>
        <title>Test</title>
        <link rel="stylesheet" type="text/css" href="css/custom.css" />
        <link rel="stylesheet" type="text/css" href="css/superfish.css" media="screen">
        <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.8.10.custom.css" media="screen">
        <script type="text/javascript" src="script/jquery-1.5.1.js"></script>
        <script type="text/javascript" src="script/superfish.js"></script>
        <script type="text/javascript" src="script/jquery-ui-1.8.10.custom.min.js"></script>
        <script type="text/javascript">


        // initialise plugins
        $(function(){
            try {
                $('ul.sf-menu').superfish();

                //set up divs
                $('#Content').resizable({ handles: 'e', alsoResize: $('#Attributes')});

            }catch(ex){
                alert(ex.message);
            }
        });

        </script>
    </head>
    <body>
       <div id="Header">
            <div id="Menu">
                <ul class="sf-menu" id="nav">
                    <!-- Snip menu -->
                </ul>
            </div>
        </div>
        <div id="Middle">
            <div id="Content" class="ui-widget-content">This is where the view is.<br/>
            Imagine an image here ...
            <br/>
            <br/>
            <br/>
            </div>
            <div id="Attributes" class="ui-widget-content">
                <ul>
                    <li>A</li>
                    <li>B</li>
                    <li>C</li>
                </ul>
            </div>
        </div>
        <div id="FootBreak"/>
        <div id="Footer">
            <a href="#">Help</a>
        </div>
    </body>
</html>

最佳答案

我已经使用调整大小事件制定了一个合理的 hack。

<script type="text/javascript">

    var WIDTH_ATTR = 'initWidth';

    // initialise plugins
    $(function(){
        try {
            $('#Content').resizable({ handles: 'e', resize: resizeAttr }); 
            $('#Content').attr(WIDTH_ATTR, $('#Content').width());
            $('#InfoPanel').attr(WIDTH_ATTR, $('#InfoPanel').width());
        }catch(ex){
            alert(ex.message);
        }
    });

    function resizeAttr(event, ui){
        var change = ui.size.width - $('#Content').attr(WIDTH_ATTR);
        $('#InfoPanel').width($('#InfoPanel').attr(WIDTH_ATTR) - change);
    };

</script>

我仍然愿意接受其他人更清晰的答案...

关于javascript - 使用 jquery UI 可调整大小的分屏 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5199368/

相关文章:

javascript - 在 Angular 2/4/5 中从 JavaScript 添加动态 HTML 并绑定(bind)事件

javascript - 在 where 子句中进行 Sequelize 连接?

javascript - 如何验证在单击按钮之前是否单击了 anchor 标记(使用 javaScript)

html - 我什么时候可以安全地使用 HTML5 中的新 <main> 元素?

python - 如何使用 Selenium 和 Chrome 在 Python 中单击下拉菜单

php - 如何使用 id 名称作为 url 使用 jquery 加载页面

javascript - 在 HTML 中遍历 map

javascript - 单个 ESC 关闭 jQuery UI 中的所有模式对话框。解决方法?

javascript - 单击 JQuery UI 对话框按钮转到页面底部

jquery-ui - 如何使 JQGrid 中的过滤器工具栏不区分大小写并在其中设置占位符?