javascript - 如何实现这个下拉面板的逻辑?
伊谢尔伦
伊谢尔伦 2017-04-10 16:55:27
[JavaScript讨论组]

html:

view:

实现功能:
点击“行业分类”和“功能分类”,都会弹出下拉面板;
面板隐藏的情况下,两次点击同一个span,第一次弹出,第二次隐藏,如果连续两次点击的是不同span,面板不会隐藏....比如:第一次点击“行业分类”,下拉面板弹出,再点击“行业分类”下拉面板隐藏,如果第二次点击的是“功能分类”,下拉面板始终显示!
求一个简单的逻辑实现方式!!!

写问题时捋顺了思路,自己刚写了一个,有点复杂,可以指点一下:
我的代码:

var span=null;
点击span改变面板和面板背后的遮罩层显示状态
$(".child-nav>span").click(function(){
    var other=this;
    if(span==null||(span!=null&&span!=other)){
        $(".grand-nav-wrap").show();//面板打开
        $(".op-bg-talent").show();//遮罩层打开
    }
    if(span!=null&&span==other){
        $(".grand-nav-wrap").toggle();//面板打开或者关闭
        $(".op-bg-talent").toggle();//遮罩层打开或者关闭
    }
    span=this;
});
点击遮罩层关闭面板和遮罩层
$(".op-bg-talent").click(function(){
    $(".grand-nav-wrap").hide();//面板关闭
    $(".op-bg-talent").hide();//遮罩层关闭
});
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(1)
怪我咯

不知道状况是不是对的,供参考!

HTML:

<ul class="nav">
    <li><a href="javascript:;" data-toggle="panel">行业分类</a></li>
    <li><a href="javascript:;" data-toggle="panel">功能分类</a></li>
</ul>

<p class="panel" style="display:none;">下拉面板</p>

<p class="backdrop" style="display:none;"></p>

CSS:

.nav {
    padding-left: 0;
}
.nav li {
    display: inline-block;
}
.panel {
    position: fixed;
    width: 400px;
    height: 300px;
    padding: 10px;
    background-color: #fff;
}
.backdrop {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
    background-color: #000;
    opacity: .3;
}

JavaScript:

$(function() {
    var set = $('.panel, .backdrop'),
        obj = null;

    $('.nav a[data-toggle="panel"]').click(function() {
        var _this = this;

        if (set.is(':hidden') || (obj == _this)) {
            set.toggle();
        }

        obj = this;
    });

    $('.backdrop').click(function() {
        set.toggle();
    });
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号