zoukankan      html  css  js  c++  java
  • jquery实现手风琴效果

    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();
  • 相关阅读:
    Practice II 字符串
    Euleriar Path 入门
    2-SAT 入门
    Practice I 图论
    游戏中寻找学习JAVA的乐趣之坦克大战系列5-坦克的动态参数
    JQuery教程:实现轮播图效果
    HTML表格应用
    菜鸟Vue学习笔记(三)
    Java成神路上之设计模式系列教程之一
    JVM垃圾回收机制之对象回收算法
  • 原文地址:https://www.cnblogs.com/alisayuan/p/5275562.html
Copyright © 2011-2022 走看看