javascript - 单击时更改另一个元素的 Z 索引

标签 javascript jquery html css

在下面的代码中,我试图找出如何相对于单击的“菜单项”更改“内容”的 z-index。我设法为菜单项执行此操作,但找不到其余的解决方案。简而言之,我需要单击#m1 并为#c1 设置Z-Index 10,依此类推。

HTML

<div id="content" class="container">
    <div id="c1" class="content">content1</div>
    <div id="c2" class="content">content2</div>
    <div id="c3" class="content">content3</div>
    <div id="c4" class="content">content4</div>
</div>
<div id="menu" class="container">
    <div id="m1" class="menu-item"></div>
    <div id="m2" class="menu-item"></div>
    <div id="m3" class="menu-item"></div>
    <div id="m4" class="menu-item"></div>
</div>

CSS

/*global*/
.container{
    position: absolute;
    width: 300px;
    height: 100px;
}
/*content*/
.content{
    position: absolute;
    height: 100%;
    width: 75%;
    right: 0;
    background: #354458;
    text-align: center;
    color: #fff;
    line-height: 95px;
}
/*menu*/
.menu-item{
    position: absolute;
    width: 25%;
    height: 100%;
    background: green;
    cursor: pointer;
    transition: left 200ms ease-in-out;

}
.menu-item.closed{
    left: 0 !important;
}
#m1{
    left:0;
    background: #DB3340;

}
#m2{
    left: 25%; 
    background: #E8B71A;
}
#m3{
    left: 50%; 
    background: #1FDA9A;
}
#m4{
    left: 75%; 
    background: #28ABE3;
}

JQuery

$(document).ready(function(){
    var menu = $('.menu-item');

    menu.click(function(){
        $(this).siblings(menu).css('z-index', "initial");
        $(this).css('z-index', 11);
    });
    menu.click(function(){
        menu.toggleClass("closed");
    });
});

工作示例:http://jsfiddle.net/8a3vqy5v/

最佳答案

无需为同一元素注册多个点击事件,它们与单个绑定(bind)一样适用于您的情况。

您可以在点击事件中根据菜单索引隐藏和显示背景内容,如下所示,您可以查看代码片段以获取完整代码:

var index = $(this).index();
$('.content').hide();
$('.content').eq(index).show();

片段:

$(document).ready(function(){
	var menu = $('.menu-item');
	
	menu.click(function(){
		$(this).siblings(menu).css('z-index', "initial");
		$(this).css('z-index', 11);
        menu.toggleClass("closed");

        var index = $(this).index();
        $('.content').hide();
        $('.content').eq(index).show();
	});

});
/*global*/
.container{
    position: absolute;
    width: 300px;
    height: 100px;
}
/*content*/
.content{
    position: absolute;
    height: 100%;
    width: 75%;
    right: 0;
    background: #354458;
    text-align: center;
    color: #fff;
    line-height: 95px;
}

/*menu*/
.menu-item{
    position: absolute;
    width: 25%;
    height: 100%;
    background: green;
    cursor: pointer;
    transition: left 200ms ease-in-out;
    
}
.menu-item.closed{
    left: 0 !important;
}
#m1{
    left:0;
    background: #DB3340;
    
}
#m2{
    left: 25%; 
    background: #E8B71A;
}
#m3{
    left: 50%; 
    background: #1FDA9A;
}
#m4{
    left: 75%; 
    background: #28ABE3;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content" class="container">
    <div id="c1" class="content">content1</div>
    <div id="c2" class="content">content2</div>
    <div id="c3" class="content">content3</div>
    <div id="c4" class="content">content4</div>
</div>
<div id="menu" class="container">
    <div id="m1" class="menu-item"></div>
    <div id="m2" class="menu-item"></div>
    <div id="m3" class="menu-item"></div>
    <div id="m4" class="menu-item"></div>
</div>

关于javascript - 单击时更改另一个元素的 Z 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33846989/

相关文章:

javascript - 在 asp.Net LinkBut​​ton OnClientClick 上触发 html5 表单验证

javascript - 在 JQuery 中添加类

jquery - 使用 jQuery 捕获正在运行的 css 转换

jquery - 如何使用jquery重定向到按钮点击事件的其他页面

javascript - 将 appendTo 动态行值传递给 Bootstrap 模式

javascript - bot 框架网络聊天 v4 中的字体自定义

javascript - 为什么这个 javascript 不能在 html 中运行,但可以在控制台中运行?

javascript - 使用条件 javascript 隐藏整个 div(缺少头像图像)

javascript - 如何旋转 Canvas 中选定的元素

JQuery - .hover() 加载图像后并附加到 .find()div