html----accordion.html

<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>simple Demo</title>
<link rel="stylesheet" type="text/css" href="accordion.css">
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
</head>
<body>
<div class="simple_container">
<div class="type_select">
<select>
<option value="Chart">Chart</option>
<option value="table">Table</option>
</select>
</div>
<div class="simple_accordion">
<div class="accordion_first">
<a href="javascript:void(0)" class="accrodion_title" >css选择器的种类</a>
<div class="accordion_content"></div>
</div>
<div class="accordion_second">
<a href="javascript:void(0)" class="accrodion_title" >Array的常见方法</a>
<div class="accordion_content"></div>
</div> </div>
</div> </body>
<script src="../build/bundle.js"></script> //注意这里引用的是模块化后的文件,见webpack.config.js 中的output </html>

js文件-----accordion.js

define(function() {
// $(document).ready(function(){
'use strict';
var accordion = function() {
this.$el = $(".simple_accordion");
this._init(); };
accordion.prototype = {
_init: function() {
var self=this;
$.get("accordion.json", function(data) {
self.eventBind(data);
});
},
// change select list
eventBind: function(data) {
$("select").change(function() {
var type_content = $(this).val();
if (type_content === "table") {
$(".simple_accordion").css("display", "none");
} else {
$(".simple_accordion").css("display", "block");
} }); // bind event on parent element
$(".simple_accordion").delegate('div', 'click', function(event) {
var target = event.target.parentNode.className;
var $first_content = $(".accordion_first").find("div");
var $second_content = $(".accordion_second").find("div");
var firstHtml = "";
var secondHtml = "";
$(".simple_accordion").addClass("big");
if (target === "accordion_first") {
data.css_selector.forEach(function(element, index, arr) {
firstHtml += '<div class="css_list"><span class="icon_dot"></span><span class="css_text">' + element + '</span></div>';
});
$first_content.html("").append(firstHtml).show();
$second_content.html("").toggle();
} else if (target === "accordion_second") {
data.Array_method.forEach(function(element, index, arr) {
secondHtml += '<div class="arr_list"><span class="icon_dot"></span><span class="arr_text">' + element + '</span></div>';
});
$second_content.html("").append(secondHtml).show();
$first_content.html("").toggle();
} }); } };
return accordion;
});

css文件------accordion.css

.simple_container{
margin-left: 100px;
}
.simple_accordion{
width:200px;
border: 2px solid #483d8b;
margin-top: 5px; }
.accrodion_title{
/*border-bottom :2px solid #3cb371;*/
padding: 5px;
text-decoration: none;
color: #9400d3;
font-weight: bold; }
.icon_dot{
width: 4px;
height: 6px;
background-color: #0000ff;
display: inline-block;
padding-left: 3px;
}
.css_list,.arr_list{
padding-left: 10px;
}

本文假设手风琴中的内容是动态从服务器的accordion.json中获取。accordion.json

{
"css_selector":["element_selector","id_selector","class_selector","attr_selector","descendant_selector","child_selector","adjscent_sibling_selector"],
"Array_method":["contact","join","pop & push","(un)shift","splice","slice","sort","reverse"]
}

本文又使用了webpack将代码模块化。webpack.config.js

module.exports = {
entry: './src/index.js',//页面入口文件配置
output: { //入口文件输出配置
path: './build',
// publicPath: 'http://mycdn.com/', // This is used to generate URLs to e.g. images
filename: 'bundle.js'
},
ststs:{
color:true,
modules:true,
reasons:true
},
//加载器配置
module: {
loaders: [
{ test: /\.less$/, loader: 'style-loader!css-loader!less-loader' }, // use ! to chain loaders
{ test: /\.css$/, loader: 'style-loader!css-loader' },
{ test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'}, // inline base64 URLs for <=8k images, direct URLs for the rest
{ test: /\.svg$/,loader:"url?limit=15000&mimetype=image/svg+xml"},
{ test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,loader:"url?limit=100000&minetype=application/x-font-woff"},
{ test:/\.html$/,loader:"html?attrs=img:src input:src"},
{ test: /\.js$/, loader: 'jsx-loader?harmony' }
]
}
};

入口文件index.js

var accordion=require("../src/accordion.js");
var accor =new accordion();

jquery实现手风琴效果的更多相关文章

  1. 基于jquery横向手风琴效果

    基于jquery横向手风琴效果是一款基于jquery实现的左右滑动手风琴图片轮播切换特效.效果图如下: 在线预览   源码下载 效果图如下: <div class="flash&quo ...

  2. jquery横向手风琴效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. jquery 图片手风琴效果

    这篇主要是手风琴效果和无缝切换相结合,在Demo里的Demo3.html.Demo4.html. 手风琴原理比较简单,当鼠标经过的时候改变图片的路径,鼠标移到另一张图片时还原路径. 虽然原理简单,但是 ...

  4. jquery横向手风琴效果2

    <!doctype html> <html> <head> <meta charset="utf-8"> <script ty ...

  5. jQuery做出手风琴效果

    今天学到JQuery中的遍历-siblings,便手痒做了个手风琴的动态效果,有一点收获,分享给大家.mouseout的时候一定要记得opacity必须设置,不然li的opacity会保持mousem ...

  6. jquery版手风琴效果

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. jQuery实现手机竖直手风琴效果

    效果:http://hovertree.com/texiao/jquery/65/ 效果图: 手机扫描二维码查看效果: 代码: <!doctype html> <html lang= ...

  8. 使用 jQuery & CSS3 实现优雅的手风琴效果

    手风琴效果常用于切换显示一组内容,这种方式既可以节省网页空间又可以有动画效果.今天,我们将创造一个优雅的手风琴内容效果.这个想法是有悬停时滑出一些垂直手风琴标签.我们将添加一些 CSS3 属性来提升外 ...

  9. 基于 jQuery 实现垂直滑动的手风琴效果

    今天我们要与大家分享一个漂亮而灵活的垂直 jQuery 手风琴效果.其主要思想是扩大手风琴片上的点击和显示更多的信息.其他内容片段将变得不那么透明.当使用一个导航箭头导航下一个片段,新的片会从顶部或底 ...

随机推荐

  1. PPTP-VPN第一章——部署与简单使用

    最近前游戏同事搞了台的VPS,贡献出来做VPN使用.目前流行的服务器VPN软件主要有PPTP VPN和Openvpn.Openvpn虽然功能较为强大,且安全性高,支持nat穿越等等,但服务器端和客户端 ...

  2. [原创]NIOS小知识总结

    本文记录了在使用NIOS中遇到的一些问题和相关的原因分析及解决办法,做个总结方便以后查阅.也希望可以帮到有同样问题的攻城狮.本文长期更新,遇到了就写下. 本人使用软件版本:QuartusII 13.0 ...

  3. HTML5 --照抄书里的代码但函数无法执行、求分析( Uncaught ReferenceError: xxx is not defined)

    在js文件里写一个方法传参数: moveElement(id,name,price) { alert("id:"+id+"name:"+name+"p ...

  4. easy ui 框架

    Easy UI 准备工作(搭建) 1.在WebRoot 的目录下创建js 文件夹,在文件夹中倒入一下两个包 Jquery.easyui.min.js jquery.min.js 2.在WebRoot ...

  5. html+css 技巧

    3.css定义的技巧:[1].为了将来的css代码优化,建议所有的属性上要带上“:” [2].某些html 标签,有自己默认的css属性值,       例如h1 标签就有自己的属性值,自动就是加粗显 ...

  6. SpringAOP详解(转载大神的)

    AOP(Aspect-Oriented Programming)这个东西,名字与 OOP 仅差一个字母,其实它是对 OOP 编程方式的一种补充,并非是取而代之.翻译过来就是"面向方面编程&q ...

  7. Hibernate自动建表问题

    自动见表配置 <property key="hibernate.hbm2ddl.auto">update</property> 运行时出现了一下错误 org ...

  8. IIS上虚拟目录下站点的web.config与根站点的web.config冲突解决方法

    IIS7.5上在站点下部署虚拟目录,访问虚拟目录下的项目提示与父节点配置冲突.,节点与的<system.web>节点与主站点的<system.web>冲突解决方法: 在站点下的 ...

  9. padding和margin的区别

    简单来说,padding就是内边距,margin就是外边距如下图: margin和padding的区别用图表示为:

  10. sql 通过表名获取所有列名

    因为要做数据迁移,也就是业务数据库的数据要迁移到历史数据库,这两个数据库理论上表结构是一样的,但因为时间原因,可能业务库升级了表结构,但历史库没有升级,且加字段的顺序不一样,导致 insert int ...