手风琴方式展开和折叠导航菜单效果

快乐打工仔 分类:实例代码

本章节分享一段代码实例,它实现了手风琴方式展开和折叠导航菜单效果。

代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312">
<meta name="author" content="http://www.pipipi.net/" />
<title>前端教程网</title>
<style>
dl{width:150px;}
dl,dd{margin:0;}
dt{
  background:gray;
  font-size:14px;
  padding:2px;
  margin:2px;
}
dt{color:#FFF;}
dd a{
  color:#000;
  font-size:12px;
}
ul{
  list-style:none;
  padding:2px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script>
$(document).ready(function(){
  $("dd:not(:first)").hide();
  $("dt a").click(function(){
    $("dd:visible").slideUp("slow");
    $(this).parent().next().slideDown("slow");
    return false;
  });
});
</script>
</head>
<body>
<dl>
  <dt><a href="#">前端教程网一</a></dt>
  <dd>
    <ul>
      <li><a href="#">div教程</a></li>
      <li><a href="#">css教程</a></li>
      <li><a href="#">jquery教程</a></li>
    </ul>
  </dd>
  <dt><a href="#">前端教程网二</a></dt>
  <dd>
    <ul>
      <li><a href="#">正则教程</a></li>
      <li><a href="#">前端教程网</a></li>
    </ul>
  </dd>
  <dt><a href="#">前端教程网三</a></dt>
  <dd>
    <ul>
      <li><a href="#">ajax教程</a></li>
      <li><a href="#">pipipi.net</a></li>
      <li><a href="#">js教程</a></li>
    </ul>
  </dd>
</dl>
</body>
</html>

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

一.代码注释:

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

(2).$("dd:not(:first)").hide(),除第一个dd元素之外的所有dd元素隐藏,就是第一个导航菜单的子菜单是展开的,其他隐藏。

(3).$("dt a").click(function(){}),为dt元素下的a元素注册click事件处理函数。

(4).$("dd:visible").slideUp("slow"),所有已经显示的dd元素通过动画方式收缩隐藏。

(5).$(this).parent().next().slideDown("slow"),当前连接a元素的父元素也就是dt元素,dt元素的下一个元素就是二级菜单dd元素,将此菜单以动画方式展开。

(6).return false,这个很重要,防止链接的跳转动作。

二.相关阅读:

(1).:not参阅jQuery :not一章节。

(2).:first参阅jQuery :first一章节。

(3).:visible参阅jQuery :visible一章节。

(4).slideUp()参阅jQuery slideUp()一章节。

(5).parent()参阅jQuery parent()一章节。

(6).next()参阅jQuery next()一章节。

(7).return false参阅JavaScript return false一章节。

回复

我来回复
  • 暂无回复内容