下拉菜单在菜单按钮的边缘闪闪发光

Drop down menu is Glitchy at the edge of menu button

本文关键字:边缘 闪闪发光 按钮 菜单 下拉菜单      更新时间:2023-09-26

我有一个奇怪的问题。我创建了一个标准的下拉菜单,但我遇到了一个问题,当我在菜单和下拉菜单之间切换时,菜单会消失。我找不到任何可以停止悬停状态的css,但也许你的眼睛比我的好。

以下是正在发生的事情的gif图:http://imgur.com/axF6skK

我的js代码:

//------- NAV MENU --------//
$('nav li').hover(
  function () {
    $('ul', this).stop(true,true).fadeIn({ duration: 300, queue: false }).slideDown(300);
  },
  function () {
    $('ul', this).stop(true,true).fadeOut({ duration: 300, queue: false }).slideUp(300);
});

相关HTML:

<nav>
  <ul class="center">
    <li class="menu">
      <a href="#Home">Home</a>
    </li>
    <li class="menu">
      <a class="inactive">Get Started</a>
      <ul class="dropdown hidden" id="drop1">
        <li class="dropitem"><a href="#Start">Start Making Your CCR</a></li>
        <li class="dropitem"><a href="#HowItWorks">How CCR Writer Works</a></li>
        <li class="dropitem"><a href="#Why">Why Choose CCR Writer</a></li>
        <li class="dropitem"><a href="#MyPrevious">Access My Previous CCRs</a></li>
      </ul>
    </li>
  </ul>
</nav>

相关CSS:

nav > ul {
  margin: 0 auto;
  padding: 0;
  list-style-type: none;
  height: 100px;
  float: right;
  padding-right: 30px;
}
li.menu {
  display: inline-block;
  padding:0;
  margin: 0;
  padding-left: 15px;
  padding-right: 15px;
  height: 100px;
  position: relative;
}
li.menu:hover { background-color: #FFFFFF; }
li.menu a {
  font-size: 12pt;
  padding-top: 33px;
  display: table-cell;
  vertical-align: middle;
  position: relative;
}
li.menu:hover a { color: #232323; }
li.dropitem {
  padding: 0;
  margin: 0;
}
li.dropitem:hover { background-color: #DADADA; }
li.dropitem a {
  color: #232323;
  margin: 0;
  padding: 10px;
  padding-left: 15px;
  padding-right: 15px;
  font-size: 13pt;
}
ul.dropdown {
  position: absolute;
  white-space: nowrap;
  width: auto;
  min-width: 100%;
  top: 100px;
  left: 0;
  padding-top: 0;
  margin: 0;
  padding-bottom: 10px;
  z-index: -1;
  border: none;
  border-radius: 0px 0px 2px 2px;
  box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
  background-color: #FFF;
  height: auto;
}

尝试使用display: inline-flex而不是display: inline-block

li.menu {
  display: display: inline-flex;
  padding:0;
  margin: 0;
  padding-left: 15px;
  padding-right: 15px;
  height: 100px;
  position: relative;
}

从此CSS:中删除z-index: -1

ul.dropdown {
  position: absolute;
  white-space: nowrap;
  width: auto;
  min-width: 100%;
  top: 100px;
  left: 0;
  padding-top: 0;
  margin: 0;
  padding-bottom: 10px;
  /* z-index: -1; */       /* <-- Remove this line */
  border: none;
  border-radius: 0px 0px 2px 2px;
  box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
  background-color: #FFF;
  height: auto;
}

尝试在ul.dropdown上删除z-index

只需将stop()中的参数从true更改为false:即可解决此问题

$('nav li').hover(
  function () {
    $("ul",this).stop(false,false).fadeIn({ duration: 300, queue: false }).slideDown(300);
  },
  function () {
    $("ul",this).stop(false,false).fadeOut({ duration: 300, queue: false }).slideUp(300);
});

正如您在这个JSFiddle上看到的:http://jsfiddle.net/kwdf8fhc/