jquery-ui - 使用 jQuery UI 的带有可调整大小 Pane 的完整页面布局

标签 jquery-ui web-applications jquery-ui-resizable

我正在尝试创建网络应用程序的整体布局。该应用程序是全屏的,具有固定标题和三个列/ Pane 。中心 Pane 由两行组成:

app wireframe layout

应通过用鼠标拖动 Pane 边缘来调整 Pane 的大小(请参见上图中的箭头)。

各个 Pane 应该有垂直滚动条,以防内容溢出,即没有全局浏览器窗口滚动条。

使用 jQuery 和 jQuery UI 可调整大小,我创建了 this (partly working) JSFiddle .

HTML:

<div class="header">
  Fixed header    
</div>
<div class="wrapper">
   <div class="inner-wrapper">
       <div class="left pane">Left</div>
       <div class="center pane">
           <div class="inner">
               <div class="top">Center top</div>
               <div class="bottom">Center bottom</div>
           </div>
       </div>
       <div class="right pane">Right</div>
   </div>
</div>

CSS:

html, body {
    height: 100%;
}
.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 20px;
    background-color: moccasin;  
}
.wrapper {
    position:absolute;
    top: 21px;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: fuchsia;
}
.inner-wrapper,
.center.pane .inner {
    display: table;
    width: 100%;
    height: 100%;
}
.pane {
    display: table-cell;
}
.left.pane {
   background-color: olivedrab; 
}
.center.pane {
    background-color: lightblue;
}
.center.pane .inner .top,
.center.pane .inner .bottom{
    display: table-row;  
}
.center.pane .inner .top {
    background-color: lightcoral;   
}
.center.pane .inner .bottom {   
    background-color: orange;
    height: 100%;
    width: 100%;
}
.right.pane {
    background-color: #999;
}

JavaScript:

$(function () {
    $(".left.pane").resizable({
        handles: "e, w"
    });
    $(".right.pane").resizable({
        handles: "e, w"
    });
    $(".center.pane .inner .bottom").resizable({
        handles: "n, s"
    });
});

它有几个问题,包括:

  • 调整左侧大小时,右侧也会调整大小(这是不应该的)
  • 将“左侧”调整为全宽时,中心内容将隐藏在“右侧”下方
  • 向右调整大小时, wrapper (紫红色)部分可见
  • 中心底部通过中心顶部的顶部调整大小,而不是通过它自己的顶部

我知道 jQuery 布局插件,但据我所知,它并没有提供我想要的布局。另外,我想让它尽可能简单。

此外,我尝试过Methvins splitter插件,但无法让它工作。

我的问题:

有关如何创建布局的任何建议,如 jQuery UI 可调整大小的图像以及我在 JSFiddle 中的内容。 ?

最佳答案

还有更合适的插件,基于jQuery来获取你想要的。

选项 1:

我个人在我的项目中使用了UI Layout

这是一个几乎很老的项目(6年前),但是在2014年中期重新开始开发,即使2014年9月之后没有更多信息

实际上,最后一个稳定版本是 1.4.3,于 2014 年 9 月发布。新网站是:

<小时/>

选项 2:

如果您需要更完整的解决方案,您可以考虑 jEasy UI ,这是一个完整的框架

[...] helps you build your web pages easily

它是 jQuery UI 的一种替代品,带有一些类似的小部件(对话框、 Accordion 等)和一些专有的东西,例如 Layout module ,已经链接在我的答案中。

<小时/>

选项 3: 前一个的模拟解决方案是 Zino UI ,另一个完整的 UI 框架,有一个专用于“Split Layout”的特定组件

<小时/>

选项 4: jQWidgets是另一个库,与以前的库具有类似的目的,并且特别可能很有趣 jqxSplitter模块。

<小时/>

相关替代方案(类似):

还有另一种选择,它允许在浏览器窗口中对面板进行切片,但此外还允许拖放单个面板来创建不同的选项卡和并排子窗口。

这称为Golden Layout 。它与以前的不同,出于多种原因也更强大,但目前肯定它不支持触摸...

关于jquery-ui - 使用 jQuery UI 的带有可调整大小 Pane 的完整页面布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21784574/

相关文章:

javascript - jQuery UI slider 不起作用(提供了 fiddle )

javascript - 您可以像将事件添加到 arb 节点和选择器一样分配可拖动吗?

Jquery 可调整大小插件,通过拖动该对象的边缘来调整对象大小

javascript - jQuery-UI 可调整大小 : scale all alsoResize elements in proportion with resizable div

javascript - jQuery 滚动顶部 : Each animation needs to be finished before jumping to the next one

javascript - JQuery 自动完成源未更新

c# - 在 asp 和 c#/javascript 中创建帮助按钮

visual-studio - 类 View 窗口中同一项目的 2 次(Visual Studio)

google-apps-script - 如何使 Appscript Web App 不那么脆弱以供商业使用

jQuery - 可调整大小+可拖动,未添加滚动(左,上)