jQuery与CSS二级下拉菜单

2018-7-14 14:53| 作者: antzone| 查看: 598| 评论: 0|来自: 蚂蚁部落

本章节介绍一段代码实例,它实现点击出现二级下拉菜单的效果。

代码实例如下:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
body, h1, h2, h3, h4, h5, h6, p, ol, ul, li, dl, dt, dd{
  padding:0;
  margin:0;
}
li{list-style: none;}
img{border: none;}
u{text-decoration:none;}
em{font-style: normal;}
a{
  color:#424242;
  text-decoration:none;
  outline:none;
  blr:expression(this.onFocus=this.blur());
}
body{
  font-size:12px;
  word-break:break-all;
}
.box{
  margin:0 auto;
  text-align:left;
  width:920px;
}
.clear{clear:both;}
.UpLayer{margin:100px;}
.UpLayer dl dt{
  width:50px;
  position:absolute;
  z-index:3;
  padding:0 5px;
  line-height:20px;
}
.UpLayer02{
  border:#ccc 1px solid;
  border-bottom:none;
  background:#f1f1f1;
  margin:-1px 0 0 -1px;
}
.UpLayer dl dd{
  width:80px;
  position:absolute;
  z-index:2;
  border:#ccc 1px solid;
  padding:5px;
  line-height:20px;
  background:#f1f1f1;
  display:none;
  margin:19px 0 0 -1px;
}
.UpLayer dl dd a{
  display:block;
  border-bottom: #ccc 1px dashed;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script>
$(document).ready(function(){ 
  var objStr = ".UpLayer"; 
  $(objStr).each(function(index){ 
    $(this).click(function(){ 
      $(objStr+" dd").show(); 
      $(objStr+" dt").addClass("UpLayer02"); 
    }); 
    $(this).hover(function(){},function(){ 
      $(objStr+" dd").hide(); 
      $(objStr+" dt").removeClass("UpLayer02"); 
    });  
  }); 
}); 
</script>
</head>
<body>
<div class="UpLayer">
  <dl>
    <dt><a href="javascript:void(0)">蚂蚁部落</a></dt>
    <dd> 
      <a href="#">css教程</a> 
      <a href="#">softwhy.com</a> 
      <a href="#">div教程</a> 
      <a href="#">js教程</a> 
      <a href="#">正则教程</a>
    </dd>
  </dl>
</div>
</body>
</html>

上面的代码实现了我们的要求,下面介绍一下它的实现过程。

一.代码注释:

(1).$(document).ready(function(){}),当文档结构完全再去执行函数中的代码、

(2).var objStr = ".UpLayer",声明一个变量并赋值,这个值用作一个class选择器。

(3).$(objStr).each(function(index){ }),使用each()方法遍历匹配集合中的元素。

(4).$(this).click(function(){ },为当前元素元素注册click事件处理函数。

(5).$(objStr+" dd").show(),显示class属性值为UpLayer下的dd元素。

(6).$(objStr+" dt").addClass("UpLayer02"),为class属性值为UpLayer下的dt元素添加UpLayer02样式类。

(7).$(this).hover(function(){},function(){ 

  $(objStr+" dd").hide(); 

  $(objStr+" dt").removeClass("UpLayer02"); 

}),当鼠标离开的时候,隐藏dd元素,删除相应的样式类。

二.相关阅读:

(1).each()参阅jQuery each()一章节。

(2).addClass()参阅jQuery addClass()一章节。

(3).removeClass()参阅jQuery removeClass()一章节。


鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部