zoukankan      html  css  js  c++  java
  • jquery实现通用结构折叠面板效果

    效果截图:

     说明:可以任意添加多个类似结构样式,点击标题栏图片对应隐藏、显示。

    jquery代码:

    思路一:基本方法

        <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>    
            $(function(){
                var $dt = $('.main dl dt');                            //获取标题栏dt
                var $dd = $('.main dl dd');                            //获取图片父容器dd
                var flag = [];                                         //定义标记,用于存储图片父容器的显示、隐藏状态
                $.each($dt,function(i){
                    flag[i] = true;                                    //设置折叠初始状态
                    $dt.eq(i).on('click',function(){
                        if(flag[i]){                                   
                            $(this).next('dd').slideUp();              //隐藏元素
                            flag[i] = false;                        
                        } else {                                       
                            $(this).next('dd').slideDown();            //显示元素
                            flag[i] = true;
                        }
                    })
                })
            })
        </script>

    思路二:利用闭包

        <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <script>
            $(function(){        
                var $dt = $('.main dl dt');                    //获取标题栏dt
                var $dd = $('.main dl dd');                     //获取图片父容器dd
                var flag = [];                                  //定义标记,用于存储折叠的显示、隐藏状态
                $dt.each(function(i){                          //遍历,并向函数传递遍历序号
                    flag[i] = true;                             //设置折叠的初始状态为true
                    $($dt.eq(i)).click(                        
                        (function(i,dd){                      //返回一个闭包函数,存储传递进来的动态参数值:i和$dd.eq(i)
                            return function(){
                                if(flag[i]){
                                    $(dd).fadeOut();          //隐藏元素
                                    flag[i] = false;
                                }else{
                                    $(dd).fadeIn();            //显示元素
                                    flag[i] = true;            
                                }
                            }
                        })(i,$dd.eq(i))                        //向当前执行函数中传递参数
                    )
                })
            })
    </script>

     HTML代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>jquery-折叠效果</title>
        <style>
            .main{
                width: 980px; margin: 0 auto; overflow: hidden;
            }
            .main dl{
                float: left; margin-right: 20px; width: 200px;
            }
            .main dl dt{
                background-color: #dcdcdc; cursor: pointer; height: 30px; line-height: 30px; text-align: center;
            }
            .main dl dd{
                margin: 0;
            }
            .main dl img{
                width: 200px; height: 200px;
            }
        </style>
    </head>
    <body>
        <div class="main">
            <dl>
                <dt>标题栏01</dt>
                <dd>
                    <img src="images/img01.jpg" alt="">
                </dd>
            </dl>
            <dl>
                <dt>标题栏02</dt>
                <dd>
                    <img src="images/img02.jpg" alt="">
                </dd>
            </dl>
            <dl>
                <dt>标题栏03</dt>
                <dd>
                    <img src="images/img03.jpg" alt="">
                </dd>
            </dl>
            <dl>
                <dt>标题栏04</dt>
                <dd>
                    <img src="images/img04.jpg" alt="">
                </dd>
            </dl>
        </div>    
    </body>
    </html>
  • 相关阅读:
    [PM2][ERROR] Process XXX not found
    python字符串遍历方式
    测试面试LeetCode系列:一维数组的动态和
    测试面试LeetCode系列:打印特定文本第十行内容
    Python循环数组的方法
    MacOS安装telegraf:Error: Permission denied @ apply2files
    机器数据采集工具:telegraf的介绍安装
    第九章 Nacos Config--服务配置
    2020 史上最全IDEA插件总结
    老哥你能写篇 SpringCloud Alibaba 全家桶吗? 看视频太累 太枯燥了 !
  • 原文地址:https://www.cnblogs.com/lvmylife/p/5387924.html
Copyright © 2011-2022 走看看