javascript implements navigation menu effects with drop down submenus

  • 2020-06-12 08:30:54
  • OfStack

This article illustrates javascript's implementation of navigation menus with drop-down submenus. Share to everybody for everybody reference. Specific implementation methods are as follows:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> Navigation menu with drop-down submenu </title>
<style type="text/css">
body { font-family: Verdana; font-size: 12px; line-height: 1.5; }
a { color: #000; text-decoration: none; }
a:hover { color: #F00; }
#menu { width:500px; height:28px; margin:0 auto; border-bottom:3px solid #E10001;}
#menu ul { list-style: none; margin: 0px; padding: 0px; }
#menu ul li { float:left; margin-left:2px;}
#menu ul li a { display:block; width:87px; height:28px; line-height:28px; text-align:center; font-size:14px;}
#menu ul li a#current { font-weight:bold; color:#fff;}
#menu ul li ul { border:1px solid #ccc; display:none; position:absolute;}
#menu ul li ul li { float:none; width:87px; background:#eee; margin:0;}
#menu ul li ul li a { background:none;}
#menu ul li ul li a:hover { background:#333; color:#fff;}
#menu ul li:hover ul { display:block;}
#menu ul li.sfhover ul { display:block;}
</style>
<script type="text/javascript"><!--  //--><![CDATA[//><!--
function menuFix() {
  var sfEls = document.getElementById("menu").getElementsByTagName("li");
  for (var i = 0; i < sfEls.length; i++) {
    sfEls[i].onmouseover = function () {
      this.className += (this.className.length > 0 ? " " : "") + "sfhover";
    }
    sfEls[i].onMouseDown = function () {
      this.className += (this.className.length > 0 ? " " : "") + "sfhover";
    }
    sfEls[i].onMouseUp = function () {
      this.className += (this.className.length > 0 ? " " : "") + "sfhover";
    }
    sfEls[i].onmouseout = function () {
      this.className = this.className.replace(new RegExp("( ?|^)sfhover\\b"),
    "");
    }
  }
}
window.onload = menuFix;
//--><!]]>
</script>
</head>
<body>
<div id="menu">
<ul>
  <li><a id="current" href="#"> Home page </a></li>
  <li><a href="#"> Web page layout </a>
    <ul>
      <li><a href="#"> Adaptive width </a></li>
      <li><a href="#"> A fixed width </a></li>
    </ul>
  </li>
  <li><a href="#">web The tutorial </a>
    <ul>
      <li><a href="#"> The new </a></li>
      <li><a href="#"> Video tutorial </a></li>
      <li><a href="#"> Q&A </a></li>
    </ul>
  </li>
  <li><a href="#">web The instance </a></li>
  <li><a href="#"> Commonly used code </a></li>
</ul>
</div>
</body>
</html>

Hopefully, this article has been helpful in your javascript programming.


Related articles: