js实现下拉菜单

html代码如下:

<header>
		<img src="../img/logoo.png" alt="图标">
		<ul id="menu">
			<li id="menuli" class="active"><a href="#">课程学习</a>	   <ul class="sub_menu"> 
			    <li class="item"><a href="#">Javascript</a></li>
                <li class="item"><a href="#">Dom</a></li>
			    <li class="item"><a href="#">Css</a></li>
			    <li class="item"><a href="#">HTML</a></li>
			   </ul>
			</li>
			<li id="menuli2"><a href="#">课程笔记</a>
			   <ul class="sub_menu"> 
			    <li class="item" id="menuli3"><a href="#">Javascript</a>
                   <ul class="third_menu">
                   	<li class="item"><a href="#">Object</a></li>
                   	<li class="item"><a href="#">Function</a></li>
                   	<li class="item"><a href="#">String</a></li>
                   	<li class="item"><a href="#">Prototype</a></li>
                   </ul>
			    </li>
                <li class="item"><a href="#">Dom</a></li>
			    <li class="item"><a href="#">Css</a></li>
			    <li class="item"><a href="#">HTML</a></li>
			   </ul>
			</li>
			<li><a href="#">课程练习</a></li>
		</ul>
	</header>	

css代码如下:

*{
	margin:0;
	padding:0;
}

 body{
	background: url("../img/wallhaven2.png");
}  
header{
	width: 100%;
	background: #F5F5F5;
	border:1px solid #E5E5E5;
	height:50px;

}
img{
	display: block;
	float:left;
	padding: 1px;
}

#menu>li{
	float:left;
    padding:0 30px;
}
#menuli>a{
	border-bottom:2px solid red;

}
ul{
	list-style-type: none; 
	margin-left:150px;
	text-align: center;

}
.sub_menu{
	margin-left: 0;
	position: relative;
	border:1px solid #e5e5e5;
	border-top:none;
	border-radius:0 0 10px 10px; 
	display: none;
}
.item{
	border:1px dotted #E5E5E5; 
}
.third_menu{
    position: absolute;
    left:130px; 
    top:0px;
	margin-left: 0;
	border:1px solid #E5E5E5;
	border-top:none;
	border-left:none; 
	display: none;
}
.third_menu>li>a{
	display: block;
	text-decoration: none;
	padding:5px;
	color:#000;
	line-height: 20px;
}
ul>li>a{
	display: block;
	text-decoration: none;
	padding:5px 25px;
	color:#000;
	line-height: 40px;

}
#menuli>a{
	background: url("../img/arrow_drop_down.png") no-repeat 90px center;
}
#menuli>a:hover{
	background: url("../img/arrow_drop_down.png") #ddd no-repeat 92px center;
	color:#000;

}
 ul>li>a:hover{
	color:#eee;
	background: #ddd;

}

js代码如下:

window.onload = function(){
			var menuliobj = document.getElementById(‘menuli‘);
			var menuli2obj = document.getElementById(‘menuli2‘);
			var menuli3obj = document.getElementById(‘menuli3‘);
			var third_menuobj = document.getElementsByClassName(‘third_menu‘);
			var sub_menuobj = document.getElementsByClassName(‘sub_menu‘);
			menuliobj.addEventListener("mouseover",
			menudown1,false);
			function menudown1(){ 				              
               sub_menuobj[0].style.display="block";            

			}
			menuliobj.addEventListener("mouseout",
			menuup1,false);
			function menuup1(){ 				              
               sub_menuobj[0].style.display="none";            
               
			}
			menuli2obj.addEventListener("mouseover",
			menudown,false);
			function menudown(){ 				              
               sub_menuobj[1].style.display="block";               
			}
			menuli2obj.addEventListener("mouseout",
			menuup,false);
			function menuup(){ 				              
               sub_menuobj[1].style.display="none";               
			}

		menuli3obj.addEventListener("mouseover",menudown2,false);
		function menudown2(){

			third_menuobj[0].style.display = "block";
		}
		menuli3obj.addEventListener("mouseout",menuup2,false);
		function menuup2(){

			third_menuobj[0].style.display = "none";
		}

	}

效果图:

时间: 2024-08-29 15:21:12

js实现下拉菜单的相关文章

纯css和js版下拉菜单

<!doctype html> <html> <head> <meta charset="utf-8"> <title>css版下拉菜单</title> <style type="text/css"> div,body,ul,li{padding:0;margin:0; list-style:none;} .all{width:550px; height:30px; backgrou

用JS控制下拉菜单效果

今天,突然想复习下之前学习做导航菜单的一些知识.之后觉得下拉菜单非常好玩儿,于是自己试着用JS调出了效果.网上有众多方法,但是感觉不是很对我的胃口,我喜欢HTML/CSS/JavaScript分离着写,用户体验重要,码农审美也很重要啊,O(∩_∩)O~ 在做下拉菜单的过程中,有以下心得: 1.this是个好东西,比如在鼠标事件中,它代表此时的鼠标事件对象本身,免去去用其他方式代表改对象的麻烦: 2.getElementsByTagName或者getElementById方法获得的是一个数组,需要

JS实现下拉菜单效果

1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>下拉菜单</title> 6 <style type="text/css"> 7 body,ul,li{ 8 margin:0; 9 padding:0; 10 font-size:13px; 11 } 1

JS自定义下拉菜单select

由于系统自定的select样式的确丑到爆,所以抽空写了这么一个可以自定义下拉菜单样式的插件, 思路就是隐藏select,用一个span标签显示内容,ul标签显示下拉列表,如图: IE下存在一个BUG,设置overflow-y后,IE下设置width无效,只测试了IE9,其他版本未测试,当然如果能加入自定义样式的滚动条就完美了,时间关系以后再补吧 代码如下: 1 //自定义dropdownlist的样式, 2 //classname为模拟出来的span标签样式 3 //ulClass为下拉列表样式

bootstrap和JS实现下拉菜单

// bootstrap下拉菜单 <div class="btn-group"> <button id="button_text" type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="fa

js模拟下拉菜单-键盘、鼠标(代码详解)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

js二级下拉菜单

看似简单的一个菜单,确需要不少的知识点 1. getByClass getElementsByClassName 已经有大部分现代浏览器支持了,只有ie6,ie7,ie8是不支持的.所以对ie6,7,8做特别的处理就行,而ie里边有个内置的属性一直被我们所忽略,document.all,这个比一般的document.getElementsByTagName('*')或许要快一点.2. setTimeout 的巧妙用法. 当鼠标离开某个区域时,延时隐藏另外一个区域,而到另外一个区域是清除这个定时器

原生js实现下拉菜单

简单给两段代码: html和css部分: <style> .one li{ width:100px; height:30px; line-height:30px; background:url(nav/libg.jpg) no-repeat; float:left; text-align:center; margin-left:10px; cursor:pointer; _display:inline; position:relative;} li ul{ position:absolute;

js导航下拉菜单

使用定时器.鼠标移动事件 var img = $('#user_head'); var menu = $('.nav_list'); var i=0; var timer; img.mouseenter(function () { clearTimeout(timer) menu.show() }) img.mouseleave(function () { timer = window.setTimeout(function () { menu.hide() },500) }) menu.mou