基于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 相关文章推荐
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
Aug 31 Javascript
JS 参数传递的实际应用代码分析
Sep 13 Javascript
js 自定义的联动下拉框
Feb 07 Javascript
Javascript高级技巧分享
Feb 25 Javascript
jQuery中offsetParent()方法用法实例
Jan 19 Javascript
jquery实现翻动fadeIn显示的方法
Mar 05 Javascript
Node.js事件驱动
Jun 18 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
May 08 Javascript
vue子组件使用自定义事件向父组件传递数据
May 27 Javascript
Avalonjs双向数据绑定与监听的实例代码
Jun 23 Javascript
vue实现一个炫酷的日历组件
Oct 08 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
PHP文件操作方法汇总
2015/07/01 PHP
php中define用法实例
2015/07/30 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
2019/04/09 PHP
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
点击弹出层效果&amp;弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
jquery实现导航固定顶部的效果仿蘑菇街
2014/10/22 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
python3中的md5加密实例
2018/05/29 Python
python模糊图片过滤的方法
2018/12/14 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
python调用私有属性的方法总结
2020/07/24 Python
python如何实现word批量转HTML
2020/09/30 Python
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
linux比较文件内容的命令是什么
2015/09/23 面试题
教师自我鉴定
2013/12/13 职场文书
激励员工的口号
2014/06/16 职场文书
公司租房协议书范本
2014/10/08 职场文书
加强作风建设心得体会
2014/10/22 职场文书
工作经验交流材料
2014/12/30 职场文书
挂职个人工作总结
2015/03/05 职场文书
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android