【发布时间】:2017-03-27 00:10:13
【问题描述】:
刚刚添加了我的整个页面,因为菜单栏没有完整显示。仍然需要帮助了解为什么幻灯片动画只在第一次鼠标悬停时出现。
我正在尝试使悬停时的下拉菜单使用 jquery 的 slideDown 和 slideUp 功能。我有它的工作......有点。菜单栏往往不会在第一次悬停时应用效果,然后再执行效果。然后它会一遍又一遍地做slideUp、slideDown、slideUp……。我尝试将函数包装在文档就绪函数中。我还尝试添加一个truthy if 语句,以便鼠标退出仅在菜单关闭时才有效。我似乎无法弄清楚这一点。任何帮助将不胜感激!
编辑:刚刚意识到 mouseout 是一个坏主意,因为当用户向下移动我的下拉菜单时,它也会向上滚动......关于另一种方式的建议? HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Case</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="css/custom.css" rel="stylesheet">
</head>
<body>
<div id="custom-bootstrap-menu" class="navbar navbar-default " role="navigation">
<div class="container-fluid">
<div class="navbar-header"><a class="navbar-brand" href="#">Brand Logo</a>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-menubuilder"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse navbar-menubuilder">
<ul class="nav navbar-nav navbar-left">
<li class="active"><a href="#">Home</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle slideDown" data-toggle="dropdown">Products<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Option 1</a></li>
<li class="divider"></li>
<li><a href="#">Option 2</a></li>
<li class="divider"></li>
<li><a href="#">Option 3</a></li>
<li class="divider"></li>
<li><a href="#">Option 4</a></li>
</ul>
</li>
<li><a href="/about-us">About Us</a>
</li>
<li><a href="/contact">Contact Us</a>
</li>
</ul>
</div>
</div>
</div>
<div class="jumbotron text-center under">
<div class="transparent vert-center">
<h1 id="heading-title">Website Heading</h1>
<p id="heading-desc">Information about the website!</p>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-sm-4 text-center outline">
<h2>Text</h2>
<p>More text describing the heading!</p>
<span class="glyphicon glyphicon-leaf size"></span>
</div>
<div class="col-sm-4 text-center outline">
<h2>Text</h2>
<p>More text describing the heading!</p>
<span class="glyphicon glyphicon-hourglass size"></span>
</div>
<div class="col-sm-4 text-center outline">
<h2>Text</h2>
<p>More text describing the heading!</p>
<span class="glyphicon glyphicon-plus size"></span>
</div>
</div>
</div>
<nav role="navigation" class="navbar navbar-bottom outline-above">
<div class="container-fluid footer-bottom footer-top">
<div class="row">
<div class="col-sm-4 text-center">
<h3 class="footer-heading footer-top">Footer Title</h3>
<button type="button" class="btn-success btn-format">Click</button>
<button type="button" id="button-margin-top1" class="btn-success btn-format">Click</button>
</div>
<div class="col-sm-4 text-center outline">
<h3 class="footer-heading footer-top">Footer Title</h3>
<button type="button" class="btn-success btn-format">Click</button>
<button type="button" id="button-margin-top2" class="btn-success btn-format">Click</button>
</div>
<div class="col-sm-4 text-center">
<h3 class="footer-heading footer-top">Footer Title</h3>
<button type="button" class="btn-success btn-format">Click</button>
<button type="button" id="button-margin-top3" class="btn-success btn-format">Click</button>
</div>
</div>
</div>
</nav>
<script>
$(function(){
$('.dropdown').hover(function(){
$('.dropdown-menu').stop().slideDown(250);
});
///if ($(.dropdown-menu).height(){
$('.dropdown').mouseout(function(){
$('.dropdown-menu').stop().slideUp(250);
});
});
/// })
</script>
</body>
</html>
CSS:
*{
margin: 0;
padding: 0;
}
/* Top nav syling */
.navbar-default{
background-color: rgb(54, 135, 2);
font-size: 120%;
}
/*Main display styling */
.jumbotron{
height: 400px;
background: url("../images/bg.jpg");
background-size: cover;
background-position: 50% 50%;
width: 96%;
border-bottom: 5px solid rgb(79, 201, 2);
border-top: 5px solid rgb(79, 201,2);
border-radius: 5px;
position: relative;
left: 50%;
transform: translateX(-50%);
}
/*Navbar font coloring */
.nav.navbar-nav li a {
color: white;
}
/* Centers content vertically */
.vert-center{
position: relative;
top: 50%;
transform: translateY(-50%);
}
/*Styles partially transparent background within jumbotron class */
.transparent{
background: rgba(190, 200, 216,.5);
display: inline-block;
padding-left: 20px;
padding-right: 20px;
border-radius: 5px;
border-left: 4px solid rgb(79, 201, 2);
border-right: 4px solid rgb(79, 201, 2);
width: 60%;
}
/*Padding around desc within jumbotron */
#heading-desc {
padding-top: 15px;
padding-bottom: 15px;
}
/*Padding around title within jumbotron */
#heading-title{
padding-top: 15px;
}
/* Bootstrap menu created using bootstrapdesigntools.com */
#custom-bootstrap-menu.navbar-default .navbar-brand {
color: rgba(255, 255, 255, 1);
}
#custom-bootstrap-menu.navbar-default {
font-size: 16px;
background-color: rgba(54, 135, 2, 1);
background: -webkit-linear-gradient(top, rgba(47, 196, 116, 1) 0%, rgba(54, 135, 2, 1) 100%);
background: linear-gradient(to bottom, rgba(47, 196, 116, 1) 0%, rgba(54, 135, 2, 1) 100%);
border-width: 1px;
border-radius: 4px;
}
#custom-bootstrap-menu.navbar-default .navbar-nav>li>a {
color: rgba(255, 255, 255, 1);
background-color: rgba(248, 248, 248, 0);
}
#custom-bootstrap-menu.navbar-default .navbar-nav>li>a:hover,
#custom-bootstrap-menu.navbar-default .navbar-nav>li>a:focus {
color: rgba(255, 255, 255, 1);
background-color: rgba(90, 224, 4, 1);
}
#custom-bootstrap-menu.navbar-default .navbar-nav>.active>a,
#custom-bootstrap-menu.navbar-default .navbar-nav>.active>a:hover,
#custom-bootstrap-menu.navbar-default .navbar-nav>.active>a:focus {
color: rgba(255, 255, 255, 1);
background-color: rgba(68, 168, 5, 1);
}
#custom-bootstrap-menu.navbar-default .navbar-toggle {
border-color: #44a805;
}
/*Styling of icons */
.size{
font-size: 60px;
padding-top: 15px;
}
/*Outline surrounding three columns including icons */
.outline {
border-left: 2px solid rgb(79, 201, 2);
border-right: 2px solid rgb(79, 201, 2);
}
.navbar-bottom {
background-color: rgba(222, 223, 224, 1);
background: -webkit-linear-gradient(top, rgba(249, 249, 249, 1) 0%, rgba(222, 223, 224, 1) 100%);
background: linear-gradient(to bottom, rgba(249, 249, 249, 1) 0%, rgba(222, 223, 224, 1) 100%);
margin: 0;
padding-top: 2px;
margin-top: 90px;
}
.btn-format {
display: block;
width: 40%;
left: 50%;
height: 6%;
border-radius: 3px;
margin-top: 3px;
}
.horizontal-center{
margin: 0 auto;
width: 100px;
}
}
.footer-heading {
font-size: 150px;
margin-top: 2px;
margin-bottom: 7px;
}
footer-title-pad {
padding-top: 2px;
}
#custom-bootstrap-menu.navbar-default .navbar-brand {
color: rgba(255, 255, 255, 1);
}
#custom-bootstrap-menu.navbar-default {
font-size: 15px;
background-color: rgba(47, 196, 116, 1);
background: -webkit-linear-gradient(top, rgba(54, 135, 2, 1) 0%, rgba(47, 196, 116, 1) 100%);
background: linear-gradient(to bottom, rgba(54, 135, 2, 1) 0%, rgba(47, 196, 116, 1) 100%);
border-width: 1px;
border-radius: 4px;
}
#custom-bootstrap-menu.navbar-default .navbar-nav>li>a {
color: rgba(255, 255, 255, 1);
background-color: rgba(248, 248, 248, 0);
}
#custom-bootstrap-menu.navbar-default .navbar-nav>li>a:hover,
#custom-bootstrap-menu.navbar-default .navbar-nav>li>a:focus {
color: rgba(255, 255, 255, 1);
background-color: rgba(68, 229, 74, 1);
}
/*Styles active tab of top menu bar */
#custom-bootstrap-menu.navbar-default .navbar-nav>.active>a,
#custom-bootstrap-menu.navbar-default .navbar-nav>.active>a:hover,
#custom-bootstrap-menu.navbar-default .navbar-nav>.active>a:focus {
color: rgba(255, 255, 255, 1);
background-color: rgba(57, 145, 3, 1));
background: -webkit-linear-gradient(top, rgba(54, 135, 2, 1) 0%, rgba(57, 145, 3, 1) 100%);
background: linear-gradient(to bottom, rgba(54, 135, 2, 1) 0%, rgba(57, 145, 3, 1) 100%);
}
#custom-bootstrap-menu.navbar-default .navbar-toggle {
border-color: #42a503;
}
#custom-bootstrap-menu.navbar-default .navbar-toggle:hover,
#custom-bootstrap-menu.navbar-default .navbar-toggle:focus {
background-color: #42a503;
}
#custom-bootstrap-menu.navbar-default .navbar-toggle .icon-bar {
background-color: #42a503;
}
#custom-bootstrap-menu.navbar-default .navbar-toggle:hover .icon-bar,
#custom-bootstrap-menu.navbar-default .navbar-toggle:focus .icon-bar {
background-color: #2fc474;
}
.navbar-bottom button {
margin: auto;
}
.footer-bottom{
margin-bottom: 7px;
}
.footer-top {
margin-top: 2px;
}
/*Upper outline on bottom navigation bar*/
.outline-above {
border-top: 1px solid rgb(79, 201,2);
}
/*Spacing between buttons in footer, error- needs more efficient class */
#button-margin-top1 {
margin-top: 8px;
}
#button-margin-top2 {
margin-top: 8px;
}
#button-margin-top3 {
margin-top: 8px;
}
/*dropdown menu background color */
.dropdown-menu{
background-color: rgba(47, 196, 116, 1);
background: -webkit-linear-gradient(top, rgba(67, 171, 3, .93) 0%, rgba(47, 196, 116, .93) 100%);
background: linear-gradient(to bottom, rgba(67, 171, 3, .93) 0%, rgba(47, 196, 116, .93) 100%);
}
/*Dropdown menu on hover instead of click unless screen has been resized */
@media (min-width: 979px){
ul.nav li.dropdown:hover > ul.dropdown-menu {
display: block;
}
}
#custom-bootstrap-menu.navbar-default .dropdown-menu>li>a:hover,
#custom-bootstrap-menu.navbar-default .dropdown-menu>li>a:focus{
background-color: rgba(68, 229, 74, 1);
}
/*Changes dropdown menu icon on screen resize */
.navbar-toggle, .icon-bar {
background-color: rgba(44, 226, 50, 1);
}
.dropdown>a {
display: block;
}
JQuery:
<script>
$(function(){
$('.dropdown').hover(function(){
$('.dropdown-menu').slideDown(750);
});
///if ($(.dropdown-menu).height(){
$('.dropdown').mouseout(function(){
$('.dropdown-menu').slideUp(750);
});
});
/// })
</script>
【问题讨论】:
标签: javascript jquery html css twitter-bootstrap