javascript - 鼠标移出后显示子菜单
问题描述
你们能帮我解决鼠标移出的过渡延迟吗?:D
我的导航栏有一个下拉菜单,但是因为在主菜单项和子菜单之间有几个像素的空白,如果我没有足够快地向下移动鼠标,子菜单会再次消失。我一直在玩基于其他线程答案的过渡效果,但我无法让它工作(因为我并不真正理解逻辑 - 我通常通过反复试验来学习)。
像这样的,你们能帮助我吗?我更喜欢专注于过渡的解决方案(而不是减少空白的解决方案),因为我也想学习其他网页设计方面的过渡技巧。希望这样,我也能更好地理解这些 HTML 结构实际上是如何工作的,这样我就可以重用基本概念的想法。
注意:菜单项在悬停时会改变颜色。列出了用于该目的的主要 CSS,但我省略了颜色的特定 CSS。
nav {
display:flex;
align-items:center;
flex-direction:row;
float:right;
nav-right:auto;
justify-content:space-between;
}
.btn.btn-primary {
border: 0px;
border-radius:0 !important;
-webkit-border-radius:0 !important;
}
.btn.btn-primary:hover {
}
.dropdown-menu {
border-radius:0 !important;
-webkit-border-radius:0 !important;
}
.dropdown ul.dropdown-menu li a{
border-radius:0 !important;
-webkit-border-radius:0 !important;
}
.dropdown ul.dropdown-menu li a:hover{
}
.dropdown:hover .dropdown-menu {
display: block;
}
<section>
<header class="container">
<div class="row">
<nav class="navbar navbar-default navbar-fixed-top" style="background-color:snow;">
<h2 class="col-md">
<a class="nav" href="./index">Foundation</a>
</h2>
<nav class="navbar-right">
<!-- make it into one block, or aligned block-->
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">
Our mission </button>
<ul class="dropdown-menu">
<li>
<a href="./Guidelines#Conservation">Natural resources</a>
</li>
<li>
<a href="./Guidelines#Food">Access to food</a>
</li>
<li>
<a href="./Guidelines#Health">Public health</a>
</li>
</ul>
</div>
</nav>
</nav>
</div>
</header>
</section>
解决方案
我认为您的问题不在于过渡,而在于导航栏本身。顺便说一句,您是否使用引导程序?在下面的代码片段中,我刚刚将 BS 链接到您的代码,我看到的是菜单是可点击的,但点击子菜单真的很棘手。
这个btn btn-primary
类更像是可点击的菜单或提交按钮,但你仍然可以让它看起来像一个带有一点 CSS 的按钮。但是对于下拉菜单,我想它不是很直观。
.btn.btn-primary {
border: 0px;
border-radius: 0 !important;
-webkit-border-radius: 0 !important;
}
.dropdown-menu {
border-radius: 0 !important;
-webkit-border-radius: 0 !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="./index" class="navbar-brand">Foundation</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li>
<p class="navbar-btn">
<a href="#" class="btn btn-primary" data-toggle="dropdown">Our mission</a>
</p>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu">
<li>
<a href="./Guidelines#Conservation">Natural resources</a>
</li>
<li>
<a href="./Guidelines#Food">Access to food</a>
</li>
<li>
<a href="./Guidelines#Health">Public health</a>
</li>
</ul>
</li>
</ul>
</div>
<!--/.nav-collapse -->
</div>
</nav>
</body>
</html>
推荐阅读
- spring - Spring Reactive 事件和事务上下文
- macos - NSTextview 不会显示韩文文本替换的弹出菜单
- c++ - 在类中初始化常量
- angular - angular/nodesjstools: How to say nodesjstools of vs2017 to use other nodes_module to install a package?
- php - 为什么如果“allParticipants == 0”并且有自定义问题出现的消息不正确?
- html - 滑块动画
- c# - Comparing values stored in two arrays c#
- php - working with DateTime object received from doctrine
- asp.net - 我的程序架构有意义吗?AngularJS + ASP.NET Web API + SQL Server
- c++ - SDL 从一个类渲染矩形