基于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 相关文章推荐
与jquery serializeArray()一起使用的函数,主要来方便提交表单
Jan 31 Javascript
jquery 插件学习(四)
Aug 06 Javascript
js数字转换为float,取N位小数
Feb 08 Javascript
js实现将选中值累加到文本框的方法
Aug 12 Javascript
JS实现HTML表格排序功能
Aug 05 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
Sep 14 Javascript
使用 Node.js 对文本内容分词和关键词抽取
May 27 Javascript
js 获取html5的data属性实现方法
Jul 28 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
Sep 16 Javascript
原生js+css调节音量滑块
Jan 15 Javascript
JavaScript变量Dom对象的所有属性
Apr 30 Javascript
JS自定义右键菜单实现代码解析
Jul 16 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下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
微信小程序中的上拉、下拉菜单功能
2020/03/13 Javascript
vue模块移动组件的实现示例
2020/05/20 Javascript
基python实现多线程网页爬虫
2015/09/06 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
2018/02/03 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
Python进度条的制作代码实例
2019/08/31 Python
Django 自定义分页器的实现代码
2019/11/24 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
python将音频进行变速的操作方法
2020/04/08 Python
python基于socket函数实现端口扫描
2020/05/28 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
python 如何对logging日志封装
2020/12/02 Python
英国高街品牌:Miss Selfridge(塞尔弗里奇小姐)
2016/09/21 全球购物
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
如何进行Linux分区优化
2013/02/12 面试题
土建资料员岗位职责
2014/01/04 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
年终总结会主持词
2014/03/25 职场文书
保护母亲河倡议书
2014/04/14 职场文书
写给父母的感谢信
2015/01/22 职场文书
开幕式邀请函
2015/01/31 职场文书
2015个人半年总结范文
2015/03/09 职场文书