我正在创建四个盒子,点击盒子打开和幻灯片休息三个盒子。问题是当我向父类添加一个类来滑动这些框时。单击相同的框后,它会添加,但不会删除。以下是此操作的代码。
$(document).ready(function() {
$('.box-inner').click(function() {
$(this).siblings().removeClass('active');
if (!$(this).hasClass('active')) {
$(this).toggleClass('active');
}
//$(this).parent().removeClass('active');
//$(this).parent().addClass('active');
});
});.main {
width: 100%;
float: left;
}
.box-main {
display: flex;
}
.box-inner {
height: 450px;
width: 25%;
display: flex;
position: relative;
transition: width 0.3s ease-in-out;
z-index: 1;
}
.box1 {
width: 100%;
background: #ccc;
border-right: 1px solid #333;
z-index: 0;
position: relative;
}
.box-2 {
width: 65%;
position: absolute;
left: 0;
height: 100%;
z-index: -1;
background: red
}
.box-main.active .box-inner.active {
width: 70%;
}
.box-inner.active .box1 {
width: 35%;
}
.box-inner.active .box-2 {
position: static;
width: 65%;
}
.box-main.active .box-inner:not(.active) {
width: 10%;
-webkit-transition: width .5s ease-in-out;
transition: width .5s ease-in-out;
}
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div class="main">
<div class="box-main">
<div class="box-inner">
<div class="box1"> hihjksdfsdfjsd </div>
<div class="box-2"> </div>
</div>
<div class="box-inner">
<div class="box1"> </div>
<div class="box-2"> </div>
</div>
<div class="box-inner">
<div class="box1"> </div>
<div class="box-2"> </div>
</div>
<div class="box-inner">
<div class="box1"> </div>
<div class="box-2"> </div>
</div>
</div>
</div>
发布于 2018-06-09 00:07:20
您的逻辑的问题是由于if语句阻止您在元素上调用toggleClass() (如果该元素已经具有该类)。只需删除if条件:
$(document).ready(function() {
$('.box-inner').click(function() {
$(this).toggleClass('active').siblings().removeClass('active');
});
});.main {
width: 100%;
float: left;
}
.box-main {
display: flex;
}
.box-inner {
height: 450px;
width: 25%;
display: flex;
position: relative;
transition: width 0.3s ease-in-out;
z-index: 1;
}
.box1 {
width: 100%;
background: #ccc;
border-right: 1px solid #333;
z-index: 0;
position: relative;
}
.box-2 {
width: 65%;
position: absolute;
left: 0;
height: 100%;
z-index: -1;
background: red
}
.box-main.active .box-inner.active {
width: 70%;
}
.box-inner.active .box1 {
width: 35%;
}
.box-inner.active .box-2 {
position: static;
width: 65%;
}
.box-main.active .box-inner:not(.active) {
width: 10%;
-webkit-transition: width .5s ease-in-out;
transition: width .5s ease-in-out;
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<div class="main">
<div class="box-main">
<div class="box-inner">
<div class="box1"> hihjksdfsdfjsd </div>
<div class="box-2"> </div>
</div>
<div class="box-inner">
<div class="box1"> </div>
<div class="box-2"> </div>
</div>
<div class="box-inner">
<div class="box1"> </div>
<div class="box-2"> </div>
</div>
<div class="box-inner">
<div class="box1"> </div>
<div class="box-2"> </div>
</div>
</div>
</div>
https://stackoverflow.com/questions/50764459
复制相似问题