Jquery 滑出侧面板,然后调整页面其余部分的大小以填充

Jquery slide out side panel, but then resize rest of page to fill

我正在考虑创建一个以主区域和侧栏开头的页面,例如:

------------------------------
|           |                |
| side area |    main area   |
| 20% width |    80% width   |
|           |                |
------------------------------

并且可以隐藏或显示侧栏,以显示有或没有侧栏的页面。

但是...

移动侧栏后,我需要调整页面的其余部分以填充。

------------------------------
|                            |
|        main area           |
|        100% width          |
|                            |
------------------------------

并且侧栏可以切换到 show/hide,主区域总是调整大小以适合。

现在,我知道网上有很多这样的例子,但 none 似乎符合我的要求,并在我需要的时候让它正常工作。

所有示例似乎有两个主要方面:

1) 他们使用我不想使用的 JQueryUI。我已经在页面上加载了 JQuery,如果可能的话,我更愿意坚持使用 JQuery,而不加载其他插件

2) 他们滑动 in/out 侧栏而不影响页面的其余部分 - 滑出 div 似乎总是滑动 in/out 在其余部分的顶部页面,或将页面的其余部分推开

我看到的大多数其他示例都使用了绝对定位的侧栏,它只是滑入或滑出固定页面的其余部分。

我认为也许最好的方法是在单击按钮时制作两个动画 运行 - 一个将侧栏宽度从 20% 设置为动画,另一个设置为主列宽度从 80% 到 100%,但这看起来有点乱。

您正在寻找这样的东西吗? http://jsfiddle.net/j3ptnff2/

$('body').on('click', function () {
    $('.side').animate({
        'width': '0'
    }, 1000, function () {
        $('.main').animate({
            'width': '100%'
        });
    });
});

我通过使用 CSS table-cells 得到了最好的效果。

以这种方式制作页面,我设法制作了一个两栏的页面布局,然后将左侧栏的宽度动画化为 0,这允许右侧栏的宽度自动扩展到全宽.

这在实践中和跨浏览器上都非常有效。