基于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 相关文章推荐
三种方式获取XMLHttpRequest对象
Apr 21 Javascript
不同js异步函数同步的实现方法
May 28 Javascript
利用python分析access日志的方法
Oct 26 Javascript
JavaScript实现解析INI文件内容的方法
Nov 17 Javascript
微信小程序 五星评价功能的实现
Mar 09 Javascript
JavaScript之生成器_动力节点Java学院整理
Jun 30 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
Apr 18 Javascript
JS返回页面时自动回滚到历史浏览位置
Sep 26 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
Apr 28 Javascript
js实现图片粘贴到网页
Dec 06 Javascript
html-webpack-plugin修改页面的title的方法
Jun 18 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 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
动易数据转成dedecms的php程序
2007/04/07 PHP
php中文字符截取防乱码
2008/03/28 PHP
PHP 函数语法介绍一
2009/06/14 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
2014/06/04 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
设定php简写功能的方法
2019/11/28 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
在html页面上拖放移动标签
2010/01/08 Javascript
js滚动条回到顶部的代码
2011/12/06 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
vuex 的简单使用
2018/03/22 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python中PIL安装简单教程
2016/04/21 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
浅谈Python协程
2020/06/17 Python
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
高中生自我鉴定范文
2013/10/30 职场文书
职业教育毕业生求职信
2013/11/09 职场文书
信息服务专业毕业生求职信
2014/03/02 职场文书
家电业务员岗位职责
2014/03/10 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书