自定义大型菜单问题

时间:2017-08-23 08:33:47

标签: javascript css bootstrap-modal megamenu

我在我的网站上添加了一个使用Bootstrap,Javascript,PHP和CSS组成的大型菜单。

目前,底部有标签可以更改我在菜单中查看的列表...男士,女士,儿童和运动。

要从一个标签更改为下一个标签,我需要点击链接。

我想将其从点击更改为悬停/鼠标悬停,并从底部移开,使其位于旁边,就像在自己的列中一样。

我也有一个问题,当我将鼠标悬停在下拉菜单上时,下拉选项卡的背景颜色从蓝色变为棕色。当我离开下拉列表时,背景变回蓝色。但是,如果我打开mega菜单下拉菜单然后单击菜单中的一个子选项卡来更改显示的产品,则下拉列表背景始终保持不变,就像菜单一直处于活动状态一样,即使我将鼠标悬停在不同的下拉列表上也是如此主导航栏。

如果有人可以帮助解决这些问题,那就太棒了。

我已经包含了如下代码。 (到目前为止,上面链接上的内容的确切副本)



        List<Medicine> medicineList = new ArrayList<>();
        ArrayList<String> sub_ingredients = new ArrayList<>();

        for (Ingredient search_ingredient : medicineSearchModel.getIngredientList()) {
            sub_ingredients.add(search_ingredient.getId().toString());
        }
        for (Medicine medicine : medicineRepository.findByTradeNameStartingWithAndManufacturerStartingWith(
                medicineSearchModel.getTradeName(),
                medicineSearchModel.getManufacturer()
        )) {
            ArrayList<String> super_ingredients = new ArrayList<>();
            for (Ingredient medicine_ingredient : medicine.getIngredientList()) {
                super_ingredients.add(medicine_ingredient.getId().toString());
            }
            if (super_ingredients.containsAll(sub_ingredients)) {
                medicineList.add(medicine);
            }
        }
        return medicineList;
&#13;
$(document).ready(function() {
  $(".dropdown").hover(
    function() {
      $('.dropdown-menu', this).stop(true, true).slideDown("fast");
      $(this).toggleClass('open');
    },
    function() {
      $('.dropdown-menu', this).stop(true, true).slideUp("fast");
      $(this).toggleClass('open');
    }
  );
});
&#13;
.navbar-brand {
  width: 70px;
  height: 50px;
  background: url('http://www.sneakermission.com/uploads/3/1/2/7/31279819/5617441.png') no-repeat center center;
  background-size: 50px;
}

.nav-tabs {
  display: inline-block;
  border-bottom: none;
  padding-top: 15px;
  font-weight: bold;
}

.nav-tabs>li>a,
.nav-tabs>li>a:hover,
.nav-tabs>li>a:focus,
.nav-tabs>li.active>a,
.nav-tabs>li.active>a:hover,
.nav-tabs>li.active>a:focus {
  border: none;
  border-radius: 0;
}

.nav-list {
  border-bottom: 1px solid #eee;
}

.nav-list>li {
  padding: 20px 15px 15px;
  border-left: 1px solid #eee;
}

.nav-list>li:last-child {
  border-right: 1px solid #eee;
}

.nav-list>li>a:hover {
  text-decoration: none;
}

.nav-list>li>a>span {
  display: block;
  font-weight: bold;
  text-transform: uppercase;
}

.mega-dropdown {
  position: static !important;
}

.mega-dropdown-menu {
  padding: 20px 15px 15px;
  text-align: center;
  width: 100%;
}
&#13;
&#13;
&#13;    

1 个答案:

答案 0 :(得分:0)

我运行了您的代码段并遇到了两个错误:

{
  "message": "Uncaught SyntaxError: Unexpected token <",
  "filename": "https://stacksnippets.net/js",
  "lineno": 221,
  "colno": 1
}
{
  "message": "Uncaught Error: Bootstrap's JavaScript requires jQuery",
  "filename": "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js",
  "lineno": 6,
  "colno": 31
}

您需要在HTML的顶部包含您的库JavaScript和库CSS(我编辑了问题以反映这一点):

    <html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<link rel="stylesheet" ref="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
</head>
<body>
  

要从一个标签更改为下一个标签,我需要点击链接。   我想将其从点击更改为悬停/鼠标悬停

链接的默认行为是可点击的。如果您希望事件是鼠标悬停而非点击,请将其更改为<li>(删除<a>)并添加悬停事件。

从可用性的角度来看,我会将它们留作点击事件。当我将鼠标移到某个东西上时,我想要预览它的作用(例如,悬停事件应该是显示工具提示或查看浏览器左下角的链接目标的URL),我不想要它实际做这件事,直到我点击它。

  

并且也从底部移开,因此它就像在它自己的列中一样。

很难想象出你的意思,因为你的完整样式在代码片段中不可见。

  

当我将鼠标悬停在下拉菜单上时,我也遇到了问题   下拉选项卡的背景颜色从蓝色变为棕色。   当我离开下拉列表时,背景变回蓝色。   但是,如果我打开mega菜单下拉,然后单击其中一个   菜单中的子选项卡可更改显示下拉菜单的产品   背景保持不变,就好像菜单一直有效,   即使我将鼠标悬停在主导航栏上的不同下拉列表中。

在CSS中,确保背景颜色应用于<div>的所有状态,而不仅仅是悬停状态。如果<div>嵌套在<li>内,它将继承<li>的属性。