【问题标题】:Superfish broken when <a> tag is added添加 <a> 标签时,Superfish 被破坏
【发布时间】:2015-02-24 04:30:43
【问题描述】:

我正在使用最新 Superfish 菜单的代码,并且只有在使用不带 &lt;a&gt; 标记的列表时才能使其正常工作。我可能遗漏了一些明显的东西,但我一直盯着这个看太久了,我不知道出了什么问题。

这是我的html:

<!DOCTYPE html>
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
<script src="http://vbpmonitor.com/templates/vbpmonitor/js/superfish.js"></script>
<script src="http://vbpmonitor.com/templates/vbpmonitor/js/hoverIntent.js">    </script>
<script type="text/javascript">
jQuery(document).ready(function() {
    jQuery('ul.sf-menu').superfish({
        delay:         800,                // the delay in milliseconds that the mouse can remain outside a submenu without it closing
        animation:     {opacity:'show'},   // an object equivalent to first parameter of jQuery’s .animate() method. Used to animate the submenu open
        animationOut:  {opacity:'hide'},   // an object equivalent to first parameter of jQuery’s .animate() method Used to animate the submenu closed
        speed:         'normal',           // speed of the opening animation. Equivalent to second parameter of jQuery’s .animate() method
        speedOut:      'fast', 
        disableHI:     true,       
    });
});
</script>
</head>
<body>

<nav class="navbar">
<ul class="sf-menu">
<li><a href="#">Link 1</a>
  <ul>
    <li><a href="#">Sublink 1</a><li>
    <li><a href="#">Sublink 2</a></li>
    <li><a href="#">Sublink 3</a></li>
  </ul>
</li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
</ul>
</nav>

</body>
</html>

CSS:

.navbar {
  float: left;
  width: 100%;
  height: 50px;
  background: #cc3333;
}
nav > ul {
  margin: 0;
  padding: 0;
  list-style-type: none;
}
nav > ul > li {
  float: left;
  margin: 0;
}
nav > ul > li > a {
  display: block;
  padding: 17px 20px;
  color: #fff;
  text-decoration: none;
}
nav ul ul li a {
  width: 200px;
  display: block;
  padding: 10px 15px;
  text-decoration: none;
  color: #fff;
}

/*** ESSENTIAL STYLES ***/
.sf-menu li {
  position: relative;
}
.sf-menu ul {
  position: absolute;
  display: none;
  top: 100%;
  left: 0;
  z-index: 99;
  list-style-type:none;
}
.sf-menu > li {
  float: left;
}
.sf-menu li:hover ul,
.sf-menu li.sfHover ul {
  display: block;
}

.sf-menu a {
  display: block;
  position: relative;
}
.sf-menu ul ul {
  top: 0;
  left: 100%;
}

这是我测试的 JSbin 的链接:http://jsbin.com/mituwuxupi/1/

【问题讨论】:

  • 我认为我们可以将纯 CSS 用于那种下拉菜单,如果那是悬停和显示,而不是点击。
  • 请注意,&lt;li&gt;&lt;a href="#"&gt;Sublink 1&lt;/a&gt;&lt;li&gt; 关闭 li 不是正确的。可能是你的 CSS,正在添加/删除类

标签: javascript css superfish


【解决方案1】:

我尝试了你的 jsbin,它工作正常,但看不到子菜单,只需尝试为你的 CSS 添加一些背景,例如:

nav ul ul li a {
  width: 200px;
  display: block;
  padding: 10px 15px;
  text-decoration: none;
  color: #FFF;
  background-color: red;
}

你会看到你的菜单在工作。

【讨论】:

    猜你喜欢
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多