基于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 Undefined,Null类型和NaN值区别
Oct 22 Javascript
JavaScript 组件之旅(二)编码实现和算法
Oct 28 Javascript
JavaScript中判断整数的多种方法总结
Nov 08 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
Sep 04 Javascript
关于Vue.js一些问题和思考学习笔记(1)
Dec 02 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
Jun 13 Javascript
jQuery表单元素过滤选择器用法实例分析
Feb 20 jQuery
vue实现随机验证码功能的实例代码
Apr 30 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
解决layui轮播图有数据不显示的情况
Sep 16 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
Aug 03 Javascript
video.js添加自定义组件的方法
Dec 09 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
Mysql的常用命令
2006/10/09 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
JS加ASP二级域名转向的代码
2007/05/17 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
JS小功能(checkbox实现全选和全取消)实例代码
2013/11/28 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
Python编写一个优美的下载器
2018/04/15 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
Python 解码Base64 得到码流格式文本实例
2020/01/09 Python
python怎么调用自己的函数
2020/07/01 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
基于python实现操作redis及消息队列
2020/08/27 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
庆元旦活动总结
2014/07/09 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js