css - 隐藏标题后面的子菜单

标签 css menu z-index translate-animation

我正在尝试制作一个带有一级子菜单的简单顶级菜单。我想使用 translate3d 为它们设置动画,但我无法使用 z-index 使它们位于页眉后面。我正在使用 Foundation,所以标题看起来有点像这样:

#main-menu > li {
    position: relative;
}

#main-menu ul {
    position: absolute;
    -webkit-transition: transform 400ms ease; (omitted other prefixes)
    transform: translate3d(0,-100%,0);
}

#main-menu > li:hover ul {
    transform: translate3d(0,0,0);
}
<div id="header">
    <div class="row">
        <div class="large-3 small-12 columns">
            <a id="logo" href="/"></a>
        </div>
        <div class="large-9 small-12 columns">
            <nav>
                <ul id="main-menu" class="menu">
                    <li class="has-children">
                        <a href="/foo">Foo</a>
                        <ul>
                            <li>
                                <a href="/foo/first">First Child</a>
                            </li>
                            <li>
                                <a href="/foo/second">Second Child</a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </nav>
        </div>
    </div>
</div>

因此在正常状态下,子菜单 #main-menu ul 会按高度垂直平移,这样当主菜单按钮悬停时,子菜单会向下滑动。但是,我似乎无法使子菜单位于整个标题的后面但出现在下面的内容之上。

最佳答案

这可能对您有所帮助。这可以通过多种方式完成。这是其中之一。如果您开始使用 Bootstrap ,您可以轻松完成。此解决方案仅使用 html、css 和 js。这可能会快速帮助你。

<!DOCTYPE> 
<html>
<head>
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){
    $("li.one").mouseenter(function(){
        $("div.submenu").fadeIn(500,function(){
            $(this).mouseleave(function(){
                $(this).fadeOut(500);
            });
        });
    });
});

</script>
<style type="text/css">
body{
    margin: 0;
}
    ul{
        background-color:black;
    }
    ul li{
        color: white;
        list-style-type: none;
        display:inline;
        font-size:30px;
        width:100px;
        margin-left: 30px;
        margin-right: 30px;
    }
    div.submenu li{
        list-style-type: none;
        color: white;
        font-size: 30px;
        width:200px;
        background-color: black;
        text-align: center;
        position: relative;
        top:-15px;
        left:550px;


    }
    div.submenu{
        display: none;
    }
</style>

</head>
<body>

<div style="text-align:center;">
  <ul>
    <li class="one">Basin &amp; Sinks</li>
    <li>Bathroom Accessories</li>
    <li>Showers </li>
    <li>Toilets</li>

  </ul>
  <div class="submenu">
    <li>one</li>
    <li>two</li>
  </div>
</div>



</body>
</html>

关于css - 隐藏标题后面的子菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34762815/

相关文章:

java - 自定义 Java Swing 菜单项、菜单分隔符和菜单加速器的前景色和背景色

css - Javascript 渲染冲突或错误

html - 在堆叠上下文中插入一个元素及其 DOM 子元素和它的 DOM 孙子元素

javascript - 如何在一个页面中多次使用 particles.js?

javascript - 改变同级别乙级联赛的风格

javascript - HTML 自定义菜单控件问题

css - 列表(导航)元素不会延伸到向右浮动的 div

html - 如何在 bootstrap 中写一个包含表格的段落?

html - 如何在避免绝对定位的同时沿整个屏幕高度定位元素?

JavaScript 打开 Windows 开始菜单