基于jquery实现简单的手风琴特效


Posted in Javascript onNovember 24, 2015

手风琴效果是项目中使用频率较高的一种效果,本文实例J就为大家讲述了jquery实现简单的手风琴特效代码。分享给大家供大家参考。具体如下:
运行效果截图如下:

基于jquery实现简单的手风琴特效基于jquery实现简单的手风琴特效

具体代码如下:

css样式

/* CSS Document */
body {
  margin: 0 auto;
  padding: 0 auto;
  font-size: 9pt;
  font-family: 微软雅黑, 宋体, Arial, Helvetica, Verdana, sans-serif;
}
.accordion {
  padding-left: 0px;
}
.accordion li {
  border-top: 1px solid #000;
  list-style-type: none;
}
.titlemenu {
  width: 100%;
  height: 30px;
  background-color: #F2F2F2;
  padding: 5px 0px;
  text-align: left;
  cursor: pointer;
}
.titlemenu img {
  position: relative;
  left: 20px;
  top: 5px;
}
.titlemenu span {
  display: inline-block;
  position: relative;
  left: 40px;
}
.submenu {
  text-align: left;
  width: 100%;
  padding-left: 0px;
}
.submenu li {
  list-style-type: none;
  width: 100%;
}
.submenu li img {
  position: relative;
  left: 20px;
  top: 5px;
}
.submenu li a {
  position: relative;
  left: 40px;
  top: 5px;
  text-decoration: none;
}
.submenu li span {
  display: inline-block;
  height: 30px;
  padding: 5px 0px;
}
.hover {
  background-color: #4A5B79;
}

自定义js

(function ($) {
  piano = function () {
    _menu ='[{"title":"一级目录","img":"images/cog.png","submenu":[{"title":"二级目录","img":"images/monitor_window_3d.png"},{"title":"二级目录","img":"images/monitor_window_3d.png"},{"title":"二级目录","img":"images/monitor_window_3d.png"}]},{"title":"一级目录","img":"images/cog.png","submenu":[{"title":"二级目录","img":"images/monitor_window_3d.png"},{"title":"二级目录","img":"images/monitor_window_3d.png"},{"id":"4","title":"二级目录","img":"images/monitor_window_3d.png"}]}]';
    return ep = {
      init: function (obj) {
        _menu = eval('(' + _menu + ')');
         var li ="";
        $.each(_menu, function (index, element) {
          li += '<li><div class="titlemenu"><img src=' + element.img + ' width="16" height="16" alt=""/><span>' + element.title + '</span></div>';
          if(element.submenu!=null)
          {
            li+='<ul class="submenu">';
            $.each(element.submenu, function (ind, ele) {
              li += '<li><img src=' + ele.img + ' width="16" height="16" alt=""/><span><a href="#">' + ele.title + '</a></span></li>';
            });
            li+='</ul>';
          }
          li+='</li>';
        });
        obj.append(li);
      }
    }
  }

  $.fn.accordion = function (options) {
    var pia = new piano();
    pia.init($(this));
    return this.each(function () {
      var accs = $(this).children('li');
       accs.each(reset);
      accs.click(onClick);
      var menu_li = $(".submenu").children("li");
      menu_li.each(function (index, element) {
        $(this).mousemove(function (e) {
          $(this).siblings().removeClass("hover");
          $(this).find("a").css("color", "#fff");
          $(this).siblings().find("a").css("color", "#000");
          $(this).addClass("hover");
        });
      });
    });
  }

  function onClick() {
    $(this).siblings('li').find("ul").each(hide);
    $(this).find("ul").slideDown('normal');
    return false;
  }

  function hide() {
    $(this).slideUp('normal');
  }

  function reset() {
    $(this).find("ul").hide();
  }
})(jQuery);

html调用方式

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script src="jquery-1.8.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="accordion.js"></script>
<script type="text/javascript">      
  $(function(){
    $("#accordion").accordion();
  });
</script>
</head>
<body>
<ul id="accordion" class="accordion" style="width:200px;height:500px;">
</ul>
</body>
</html>

希望本文所述对大家学习jquery程序设计有所帮助,对掌握手风琴特效更加熟练,文章下方有链接的相关文章,希望大家阅读学习。

Javascript 相关文章推荐
关于Javascript作用域链的八点总结
Dec 06 Javascript
Javascript中的String对象详谈
Mar 03 Javascript
JavaScript中连接操作Oracle数据库实例
Apr 02 Javascript
JQuery radio(单选按钮)操作方法汇总
Apr 15 Javascript
卸载安装Node.js与npm过程详解
Aug 15 Javascript
判断js的Array和Object的实现方法
Aug 29 Javascript
JS实现微信里判断页面是否被分享成功的方法
Jun 06 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
Sep 30 Javascript
js Dom实现换肤效果
Oct 21 Javascript
vue中的provide/inject的学习使用
May 09 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
Sep 05 Javascript
layer.open组件获取弹出层页面变量、函数的实例
Sep 25 Javascript
jQuery插件实现无缝滚动特效
Nov 24 #Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
Nov 24 #Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
Nov 24 #Javascript
javascript实现加载xml文件的方法
Nov 24 #Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
Nov 24 #Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 #Javascript
jQuery实现带分组数据的Table表头排序实例分析
Nov 24 #Javascript
You might like
在PHP中执行系统外部命令
2006/10/09 PHP
php模板函数 正则实现代码
2012/10/15 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
JS编程小常识很有用
2012/11/26 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
jquery搜索框效果实现方法
2015/01/16 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
bootstrap手风琴制作方法详解
2017/01/11 Javascript
vue组件 $children,$refs,$parent的使用详解
2017/07/31 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
python中文乱码的解决方法
2013/11/04 Python
python操作日期和时间的方法
2014/03/11 Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
浅谈MySQL中的触发器
2015/05/05 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
如何用Python绘制3D柱形图
2020/09/16 Python
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
10条PHP编程习惯
2014/05/26 面试题
自荐信不宜过于夸大
2013/11/06 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
排球赛新闻稿
2015/07/17 职场文书
新教师教学工作总结
2015/08/14 职场文书
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers
MySQL GTID复制的具体使用
2022/05/20 MySQL