私はマウスのクリックでお互いの隣にいくつかのdivの幅をアニメーションしようとしています。クリックされたdivは展開され(.slide_activeのスタイル)、他のdivは縮小されます(.slide_inactiveのスタイル)。JqueryのtoggleClassとCSSアニメーションのdivの幅
<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');
};
});
これは機能しません。コードの理解が限られているだけで、これを理解しているようには見えません。だから、問題はすべてのスライドはその後、すべてのスライド上でこのクラスを切り替えるslide_inactive
クラスを持っている場合は、チェックしているということです
https://jsfiddle.net/thomascs/go571dw9/1/
ありがとう!私はあなたの質問を簡素化することによってあなたを混乱させたかもしれません。私のアプリケーションでは、4つのdivsと3つの可能な状態を使用しています.slideのみ、または.slide_activeと他のすべて.slide_inactive。 divは、幅が10%、25%、または70%のいずれかになります。 .filterは私に考えさせましたが、代わりに.notを使用しました。ここに作業コードがあります:https://jsfiddle.net/thomascs/aj0dvhbm/ – thomascs