【发布时间】:2016-11-06 19:08:14
【问题描述】:
我正在尝试通过单击鼠标来为相邻的几个 div 的宽度设置动画。点击的 div 应该展开(.slide_active 的样式),而另一个 div 应该缩小(.slide_inactive 的样式)。
<body>
<div class="slide"></div>
<div class="slide"></div>
</body>
我想使用 CSS 来设置这些 '.slide' div 的不同状态
.slide {
float: left;
height: 200px;
width: 100px;
background-color: salmon;
overflow: hidden;
-webkit-transition-duration: 0.8s;
}
.slide_active {
width: 200px;
background-color: red;
}
.slide_inactive {
width: 50px;
background-color: black;
}
所以我也使用 CSS 为更改设置动画,但使用 Jquery 切换不同的类。
$('.slide').click(function() {
$(this).toggleClass('slide_active');
if (!$('.slide').hasClass('slide_active')) {
$('.slide').toggleClass('slide_inactive');
};
});
它不工作。如果只是对代码的理解有限,似乎无法弄清楚。
我创建了一个 jsfiddle:
【问题讨论】:
-
感谢 cmets!我可能会因为过度简化我的问题而让你感到困惑。在我的应用程序中,我使用了 4 个 div 和 3 种可能的状态,或者只有 .slide 或者一个带有 .slide_active 和所有其他的 .slide_inactive。一个 div 的宽度可以是 10%、25% 或 70%。 .filter 让我思考,但我改用了 .not。这是工作代码:jsfiddle.net/thomascs/aj0dvhbm