基于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 相关文章推荐
JS遮罩层效果 兼容ie firefox jQuery遮罩层
Jul 26 Javascript
Javascript中获取出错代码所在文件及行数的代码
Sep 23 Javascript
js变量、作用域及内存详解
Sep 23 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
Feb 15 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
May 03 Javascript
JS组件Bootstrap Table使用实例分享
May 30 Javascript
Angular.JS去掉访问路径URL中的#号详解
Mar 30 Javascript
如何把vuejs打包出来的文件整合到springboot里
Jul 26 Javascript
bootstrap table实现合并单元格效果
Dec 24 Javascript
怎么使用javascript深度拷贝一个数组
Jun 06 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
Oct 23 Javascript
Vue实现多页签组件
Jan 14 Vue.js
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
图象函数中的中文显示
2006/10/09 PHP
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
react build 后打包发布总结
2018/08/24 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
js实现数字从零慢慢增加到指定数字示例
2019/11/07 Javascript
vue实现导航标题栏随页面滚动渐隐渐显效果
2020/03/12 Javascript
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
python django 实现验证码的功能实例代码
2017/05/18 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
Python实现粒子群算法的示例
2021/02/14 Python
内科护士实习自我鉴定
2013/10/17 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
产品质量承诺书范文
2014/03/27 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
烹饪大赛策划方案
2014/05/26 职场文书