html - 根据向下滑动树菜单项更改包含 div 的高度

标签 html css

我在网站的左侧有一个树形菜单,如下所示。

<div id="left_menu">
    <ul id="treeMenu">
        <li><a href="#">Message of Rev. Surangika Fernando</a></li>
        <li><a href="#">125th Aniversary</a></li>
        <li><a href="#">200th Aniversary</a></li>
        <li class="contentContainer"><a href="#">Churchs</a>
            <ul>
                <li><a href="#">Dalupotha</a></li>
                <li><a href="#">Negombo</a></li>
                <li><a href="#">Andiambalama</a></li>
                <li><a href="#">Pitipona</a></li>
                <li><a href="#">Amandoluwa</a></li>
            </ul>
        </li>
    </ul>
</div>

使用 jquery。

$(document).ready(function() {

        //Class 'contentContainer' refers to 'li' that has child with it.
        //By default the child ul of 'contentContainer' will be set to 'display:none'           
        $("#treeMenu li").toggle(

            function() { // START FIRST CLICK FUNCTION
                $(this).children('ul').slideDown()
                if ($(this).hasClass('contentContainer')) {
                    $(this).removeClass('contentContainer').addClass('contentViewing');
                }
            }, // END FIRST CLICK FUNCTION

            function() { // START SECOND CLICK FUNCTION
                $(this).children('ul').slideUp()

                if ($(this).hasClass('contentViewing')) {
                    $(this).removeClass('contentViewing').addClass('contentContainer');
                }
            } // END SECOND CLICK FUNCTIOn
        ); // END TOGGLE FUNCTION

    }); // END DOCUMENT READY

这是CSS。

#left_menu
{

margin-top: 5px;
margin-right: 5px;
padding-bottom: 5px;
color: #ffffff;
float: left;
position: relative;
border: 1px solid brown;
border-radius: 15px;
}
#left_menu ul
{
   padding: 0;
   float: left;
}
#left_menu li
{
    list-style: none;
    display: block;
    border-bottom: 1px dashed;
    margin: 5px;
    padding: 0;
}
#left_menu ul li a
{
    width: 305px;
    padding: 10px 10px 10px 15px;
    display: inline-block;
 }
#left_menu ul li ul
{
    display:none;
    position: absolute;
    margin: 0;
    padding: 0;
}

#left_menu li ul li
{
    clear:both;
    border-bottom: 1px dashed;
    padding: 0;
    margin: 0;
}
#left_menu li ul li a
{
    width: 280px;
    padding-left: 40px;
}
#left_menu li a:hover
{
    background:url(../images/nav_bg.png);
}

在这段代码中,Churchs li 标签内的 ul 标签是不可见的。这个不可见的标签是绝对定位的。当我们点击 Churchs 时,它会向下滑动。但是容器 div #left_menu 的高度没有改变。我该如何解决这个问题?

最佳答案

您可以尝试将 #left_menu ul li ul 设置为相对定位,并在 #left_menu 上添加 340px 的最大宽度

fiddle :http://jsfiddle.net/fuMWw/3/

关于html - 根据向下滑动树菜单项更改包含 div 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075143/

相关文章:

html - 为什么不使用多个 css 文件?

javascript - 视频自动加载

javascript - 旋转 <a> 元素

javascript - 如何放置多个边缘动画组合?

Python 分组反向引用

html - 如何保留包含在 HTML <pre> 标签中的文本的空白缩进,不包括文档中 <pre> 标签的当前缩进级别?

javascript - 设置 innerHTML 会增加 HTML 节点数

html - 此标记的偶数和奇数伪

html - 为什么 bootstrap 将这些按比例缩放的元素垂直堆叠在列中?

javascript - 向 &lt;textarea&gt; 添加伪元素