简体   繁体   English

Bootstrap-下拉菜单在悬停时消失得太快

[英]Bootstrap - Dropdown menu disappears too quickly on unhover

I have a bootstrap navbar and I have changed it so that the dropdown menu shows whenever one hovers over the menu items (instead of whenever one clicks). 我有一个引导导航栏,并且已经对其进行了更改,以便每当鼠标悬停在菜单项上时(而不是单击一次时)就会显示下拉菜单。 This works, but there is something off: The dropdown disappears very quickly and irregularly, it's not so easy to just hover and then click on something. 这可行,但是有一些问题:下拉菜单非常快速且不规则地消失,仅将鼠标悬停然后单击某个对象并非易事。 I am not sure how to describe this but I think you will see what I mean, everything just seems a little bit too "quick". 我不确定如何描述这一点,但是我想您会明白我的意思的,一切似乎都太“快速”了。

Here is a jsfiddle: https://jsfiddle.net/r3sjgq2c/ 这是一个jsfiddle: https ://jsfiddle.net/r3sjgq2c/

Edit: I am talking about the menu in the large viewport, not about the small viewport! 编辑:我说的是大视口中的菜单,而不是小视口!

Here is the code: 这是代码:

<div class="header container-fluid">

  <div class="row">
    <div class="brand col-sm-10 offset-sm-1 hidden-xs-down">
      <svg class="brand_logo"><use xlink:href="#brand_logo" /></svg>
    </div>

<nav class="navbar navbar-toggleable-md navbar-light bg-faded col-sm-10 offset-sm-1">

  <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="navbarNavDropdown">
    <ul class="navbar-nav mx-auto">

      <li class="nav-item active">
        <a class="nav-link" href="index.php">Welcome<span class="sr-only">(current)</span></a>
      </li>

      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" id="dropdown_angebot" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
          Pricing
        </a>

        <div class="dropdown-menu" aria-labelledby="dropdown_angebot">
          <a class="dropdown-item" href="softwareentwicklung.php">Action</a>
          <a class="dropdown-item" href="qualitaetssicherung.php">Another action</a>
        </div>
      </li>

      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="http://example.com">
          Our Company
        </a>

        <div class="dropdown-menu" >
          <a class="dropdown-item" href="geschichte.php">History</a>
          <a class="dropdown-item" href="karriere.php">Career</a>
          <a class="dropdown-item" href="klienten.php">Clients</a>
        </div>
      </li>

      <li class="nav-item active">
        <a class="nav-link" href="anfahrt.php">Get here<span class="sr-only">(current)</span></a>
      </li>

      <li class="nav-item active">
        <a class="nav-link" href="kontakt.php">Contact<span class="sr-only">(current)</span></a>
      </li>
    </ul>
  </div>
</nav>

  </div>
</div>

CSS: CSS:

.navbar-toggler{
  z-index: 999999 !important;
}

.header {
  background-color: blue;

  .navbar-toggler {
        margin-top: 20px !important;
  }

  .navbar {
    height: 50px !important;
    padding: 0 !important;
    background-color: yellow !important;

    .navbar-nav {
        display: table !important;
        width: 100% !important;
        list-style: none !important;

        .nav-link {
          padding: 0 !important;
        }

        li {
        display: table-cell !important;
        text-align: center !important;

          a {
            display: block !important;
            text-align: center !important;
          }

          &:first-child a {
              text-align: left !important;
          }
          &:last-child a {
              text-align: right !important;
          }



          &:hover .dropdown-menu, .dropdown-item:hover .dropdown-menu {
              display: block !important;
          }
          .dropdown-menu {
            // margin-top: 10px;
            left: 50% !important;
            transform: translateX(-50%) !important;
          }

        }
    }
  }
}

add this in your javascript file. 将此添加到您的javascript文件中。 also add include this jquery to top off your all js file 还添加包括此jQuery以结束所有js文件

https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js



$(function(){
    $(".dropdown").hover(            
            function() {
                $('.dropdown-menu', this).stop( true, true ).fadeIn("fast");
                $(this).toggleClass('open');
                $('b', this).toggleClass("caret caret-up");                
            },
            function() {
                $('.dropdown-menu', this).stop( true, true ).fadeOut("fast");
                $(this).toggleClass('open');
                $('b', this).toggleClass("caret caret-up");                
            });
    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM