Jquery 发生slideDown()/slideUp()时,是否可以拉伸背景高度

Jquery 发生slideDown()/slideUp()时,是否可以拉伸背景高度,jquery,html,css,Jquery,Html,Css,因此,我制作了一个类似手风琴的隐藏菜单,当使用.slideUp()和.slideDown()单击父级li时,下面会出现一个子菜单。但当子菜单向下滑动时,整个菜单将移动到包含div的背景的设置高度上。但是,我不能在JQuery代码中为.slideDown()/.slideUp()部分添加.animate(),因为并非所有子菜单的组合高度都相同 演示: 我想我也会把JQuery放在这里(如果你也想在这里看到其他代码,请询问,我会编辑它): 你可以用一些CSS轻松地解决这个问题 说明:从div.bac

因此,我制作了一个类似手风琴的隐藏菜单,当使用
.slideUp()
.slideDown()
单击父级
li
时,下面会出现一个子菜单。但当子菜单向下滑动时,整个菜单将移动到包含
div
的背景的设置高度上。但是,我不能在JQuery代码中为
.slideDown()
/
.slideUp()
部分添加
.animate()
,因为并非所有子菜单的组合高度都相同

演示:

我想我也会把JQuery放在这里(如果你也想在这里看到其他代码,请询问,我会编辑它):


你可以用一些CSS轻松地解决这个问题

说明:从
div.backing
.navbar
top
中删除硬编码的高度,在
.backing
中添加一些
填充
,以便在
.navbar
上方和下方显示一些背景。现在,元素的背景将随着其内容而增长/收缩。根据您的喜好设置填充值

    $(document).ready(function () {
        $("#topnav a").click(function () {
            var el = $(this).parent();
            if (el.hasClass('active') && $(this).next().is(':visible')) {
                var active = el.siblings('.active');
                $(this).next().slideUp();
            }
            else if (el.hasClass('active') && !$(this).next().is(':visible')) {
                var active = el.siblings('.active');
                $(this).next().slideDown();
            }
            else if (!el.hasClass('active')) {
                $(this).next().slideDown();
                var active = el.siblings('.active');
                active.children('ul:first').slideUp();
                active.removeClass('active');
                el.addClass('active');
            }
        });
    });