【问题标题】:Jquery dropdown menu moves when hovering over itJquery下拉菜单在悬停时移动
【发布时间】:2018-01-23 12:27:59
【问题描述】:

我正在尝试将下拉菜单应用于我的网站。在导航栏中 在“关于”部分中,当我将鼠标悬停在它上面时,我希望出现一个下拉菜单。发生的情况是我的整个导航栏向下移动了一点,下拉菜单几乎不出现。更具体地说,当我将鼠标悬停在导航栏的“关于”部分时,它开始自发地上下移动。任何帮助,将不胜感激。详情请看我的代码:

HTML

<div id="header">

    <div id="logo">
        <a href=""><img src="images/logo.png"></a>
    </div>



    <nav id="nav">
            <ul class="parent">
              <li class="links"><a class="active" href="#home">Home</a></li>
              <li class="links"><a href="#news">News</a></li>
              <li class="links"><a href="#contact">Contact</a></li>
              <li class="links"><a href="#about">About</a>
                <ul class="child">
                    <li>Cusine</li>
                    <li>Info</li>
                    <li>Info</li>
                </ul> 
              </li>
            </ul>
    </nav>

CSS

#nav{
    float:right;
    margin-top: 50px;
    margin-right: 150px;
    margin-left: 100px;
    /*position: fixed;*/
}

.links{
    padding: 10px 20px;
    color:pink;
    text-transform: uppercase;
}
ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    margin-right: 150px;
}



li a {
    /*font-family: "Times New Roman", Times, serif;*/
    font-family: "Verdana",Sans-serif;
    font-size: 1.1em;
    display: block;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
    color:#A8004D;
}

li a:hover {
    /*addatransition animation*/
    background-color: pink;
    color:white;
}

*{
    margin:0;
    padding:0;
    box-sizing: border-box;
}

ul.child{
    display:none;
    width: 100%!important;
}

ul.parent > li {
    float:left;
    width:20%;
    text-align: center;
    padding:10px;
}

js

 $(function() {
        $('ul.parent > li').hover(function(){
            $(this).find('ul.child').show(200);
        }, function(){
            $(this).find('ul.child').hide(400);
        });
    })

【问题讨论】:

    标签: jquery html css


    【解决方案1】:

    我认为这是因为你把150px marginul elements 当只有第一个 是你的意思(我猜)所以我修改了@987654323 @ 并设置margin to 0。它停止了移动。

     $(function() {
            $('ul.parent > li').hover(function(){
                $(this).find('ul.child').show(200);
            }, function(){
                $(this).find('ul.child').hide(400);
            });
        })
    #nav{
        float:right;
        margin-top: 50px;
        margin-right: 150px;
        margin-left: 100px;
        /*position: fixed;*/
    }
    
    .links{
        padding: 10px 20px;
        color:pink;
        text-transform: uppercase;
    }
    ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
        margin-right: 150px;
    }
    
    
    
    li a {
        /*font-family: "Times New Roman", Times, serif;*/
        font-family: "Verdana",Sans-serif;
        font-size: 1.1em;
        display: block;
        text-align: center;
        padding: 14px 16px;
        text-decoration: none;
        color:#A8004D;
    }
    
    li a:hover {
        /*addatransition animation*/
        background-color: pink;
        color:white;
    }
    
    *{
        margin:0;
        padding:0;
        box-sizing: border-box;
    }
    
    ul.child{
        display:none;
        width: 100%!important;
        margin-right: 0;
    }
    
    ul.parent > li {
        float:left;
        width:20%;
        text-align: center;
        padding:10px;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="header">
        <div id="logo">
            <a href=""><img src="images/logo.png"></a>
        </div>
        <nav id="nav">
                <ul class="parent">
                  <li class="links"><a class="active" href="#home">Home</a></li>
                  <li class="links"><a href="#news">News</a></li>
                  <li class="links"><a href="#contact">Contact</a></li>
                  <li class="links"><a href="#about">About</a>
                    <ul class="child">
                        <li>Cusine</li>
                        <li>Info</li>
                        <li>Info</li>
                    </ul> 
                  </li>
                </ul>
        </nav>
    </div>

    【讨论】:

    • 这很有帮助,谢谢!我需要移除子弹并调整填充。但到目前为止一切正常。
    【解决方案2】:
    #nav{
        float:left;
        margin-top: 50px;
    
    }
    
    .links{
        padding: 10px 20px;
        color:pink;
        text-transform: uppercase;
    }
    ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
        margin-right: 150px;
    }
    
    
    
    li a {
        /*font-family: "Times New Roman", Times, serif;*/
        font-family: "Verdana",Sans-serif;
        font-size: 1.1em;
        display: block;
        text-align: center;
        padding: 14px 16px;
        text-decoration: none;
        color:#A8004D;
    }
    
    li a:hover {
        /*addatransition animation*/
        background-color: pink;
        color:white;
    
    }
    
    *{
        margin:0;
        padding:0;
        box-sizing: border-box;
    }
    
    ul.child{
        display:none;
        width: 100% !important;
        margin-left: 12px;
        opacity:1;
    }
    
    ul.parent > li {
        float:left;
        width:30%;
    
    
    }
    <div id="header">
    
        <div id="logo">
            <a href=""><img src="images/logo.png"></a>
        </div>
    
    
    
        <nav id="nav">
                <ul class="parent">
                  <li class="links"><a class="active" href="#home">Home</a></li>
                  <li class="links"><a href="#news">News</a></li>
                  <li class="links"><a href="#contact">Contact</a></li>
                  <li class="links"><a href="#about">About</a>
                    <ul class="child">
                        <li>Cusine</li>
                        <li>Info</li>
                        <li>Info</li>
                    </ul> 
                  </li>
                </ul>
        </nav>
     $(function() {
            $('ul.parent > li').hover(function(){
                $(this).find('ul.child').show(200);
            }, function(){
                $(this).find('ul.child').hide(400);
            });
        })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      相关资源
      最近更新 更多