js实现导航滚动效果代码 (js实现侧边导航栏隐藏)

1.导航下拉效果

代码如下:

<!DOCTYPE html>
<html>
<head runat="server">
    <title>JavaScript下拉菜单</title>
    <style type="text/css"> 
      * {
          padding: 0;
          margin: 0;
      }

      body {
          font-family: verdana, sans-serif;
          font-size: small;
      }

      #navigation, #navigation li ul {
          list-style-type: none;
      }

      #navigation {
          margin: 20px;
      }

      #navigation li {
          float: left;
          text-align: center;
          position: relative;
      }

      #navigation li a:link, #navigation li a:visited {
          display: block;
          text-decoration: none;
          color: #000;
          width: 120px;
          height: 40px;
          line-height: 40px;
          border: 1px solid #fff;
          border-width: 1px 1px 0 0;
          background: #c5dbf2;
          padding-left: 10px;
      }

      #navigation li a:hover {
          color: #fff;
          background: #2687eb;
      }

      #navigation li ul li a:hover {
          color: #fff;
          background: #6b839c;
      }

      #navigation li ul {
          display: none;
          position: absolute;
          top: 40px;
          left: 0;
          margin-top: 1px;
          width: 120px;
      }

      #navigation li ul li ul {
          display: none;
          position: absolute;
          top: 0px;
          left: 130px;
          margin-top: 0;
          margin-left: 1px;
          width: 120px;
      } 
    </style>
    <script type="text/javascript"> 
      function displaySubMenu(li) {
        var subMenu = li.getElementsByTagName("ul")[0];
        subMenu.style.display = "block";
      }

      function hideSubMenu(li) {
          var subMenu = li.getElementsByTagName("ul")[0];
          subMenu.style.display = "none";
      } 
	</script>
</head>
<body>
<ul id="navigation">
    <li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
      <a href="#">栏目1</a>
        <ul>
            <li><a href="#">栏目1->菜单1</a></li>
            <li><a href="#">栏目1->菜单2</a></li>
            <li><a href="#">栏目1->菜单3</a></li>
            <li><a href="#">栏目1->菜单4</a></li>
        </ul>
    </li>
    <li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
      <a href="#">栏目2</a>
        <ul>
            <li><a href="#">栏目2->菜单1</a></li>
            <li><a href="#">栏目2->菜单2</a></li>
            <li><a href="#">栏目2->菜单3</a></li>
            <li><a href="#">栏目2->菜单4</a></li>
            <li><a href="#">栏目2->菜单5</a></li>
        </ul>
    </li>
    <li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)">
      <a href="#">栏目3</a>
        <ul>
            <li onmouseover="displaySubMenu(this)" 
							onmouseout="hideSubMenu(this)"><a href="#">栏目3->菜单1</a>
                <ul>
                    <li><a href="#">菜单1->子菜单1</a></li>
                    <li><a href="#">菜单1->子菜单2</a></li>
                    <li><a href="#">菜单1->子菜单3</a></li>
                    <li><a href="#">菜单1->子菜单4</a></li>
                </ul>
            </li>
            <li><a href="#">栏目3->菜单2</a></li>
            <li onmouseover="displaySubMenu(this)" 
							onmouseout="hideSubMenu(this)">
                <a href="#">栏目3->菜单3</a>
                <ul>
                    <li><a href="#">菜单3->子菜单1</a></li>
                    <li><a href="#">菜单3->子菜单2</a></li>
                    <li><a href="#">菜单3->子菜单3</a></li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
</body>
</html> 

结果如下:

js导航栏下拉,js实现下拉框模糊查询

2.Tab效果

基本思想:

  • 通过DIV+CSS进行网页布局
  • 使用onmouseover()方法和display属性来控制不同的内容显示

首先获取所有的li保存在集合中, 然后通过for循环遍历每个li。当遍历当相应的li后,再用内层for循环隐藏所有Tab对应的内容,取消li对应的样式。内层for循环结束,显示被选中li所对应的Tab框,恢复li的样式。

代码如下:

<!DOCTYPE html>
<html>
<head>
	<title>Tab切换特效</title>
	<style type="text/css">
		* {
			padding:0;
			margin:0;
		}
		ul {
			list-style-type:none;
		}
		ul li {
			float:left;
			width:80px;
			height: 32px;
			line-height: 32px;
			text-align:center;
			border:1px solid #eee;
			cursor:pointer;
		}
		.allContent {
			clear:both;
			width: 400px;
			height: 100px;
			border:1px solid #bbb;
		}
		.dis {
			display: none;
		}
		.liHover {
			background-color:#F77;
		}
	</style>
	<script type="text/javascript">
		window.onload = function() {
			var li_x = document.getElementsByTagName("li");	//获取所有li标签
    	//循环li,当对应的li被选中时,就显示对应的div
			for(var i = 0;i < li_x.length;i++) {	
        //绑定每个li的下标,index属性相当于数组中的下标
				li_x[i].index = i;	
        //当鼠标停留在其中一个li上时,执行这个函数
				li_x[i].onmouseover = function() {	
					for(var j = 0;j < li_x.length;j++) {	//遍历所有li对应的div
            //隐藏每个li所对应的div
						var div_a = document.getElementById("tabCon"+j)
            		.style.display="none";	
						li_x[j].className="";	//同时清除每个li的样式
					}
          //循环结束,显示第一个被选中的li所对应的div
					document.getElementById("tabCon"+this.index)
            	.style.display="block";	
					li_x[this.index].className = "liHover";	//为选中的li加上样式
				}
			}
		}
	</script>
</head>
<body>
	<ul>
		<li>语文</li>
		<li>数学</li>
		<li>dsfasf</li>
		<li>啥sf</li>
		<li>英语</li>
	</ul>
	<div class="allContent">
		<div class="tabContent" id="tabCon0">中文是一门博大精深的语言</div>
		<div class="tabContent dis" id="tabCon1">数学是很多学科的基础</div>
		<div class="tabContent dis" id="tabCon2">数学是很多学科的基础</div>
		<div class="tabContent dis" id="tabCon3">klfdssa;lkfdsalk</div>
		<div class="tabContent dis" id="tabCon4">阴雨暗示法第三</div>
	</div>
</body>
</html>

效果如下:

js导航栏下拉,js实现下拉框模糊查询