私はクラスを持っていると言います:
.box { background:red; }
.box .mini-box { background:green; }
.box.active { background:purple; }
.box.active .mini-box { background:yellow; }
css-transitionsを使用している場合は、単に追加するだけtransition:all 0.5s ease;
で、クラスactive
が追加されると、両方の要素が適切にアニメーション化されます。
アニメーション時間でjQuerytoggleClassを適用すると(css-transitionsが有効になっていない場合)、ターゲット要素のみがアニメーション化されます。(つまり、.box)。
$('.box').toggleClass('active', 500);
これは、jquery uiのtoggleClassメソッドを親メソッドに適用すると、発生しません。cssトランジションのように動作させる方法はありますか?
ここで問題を確認できます:http://jsfiddle.net/yg8rz/1/ 2番目の(ミニ)ボックスが色を移行していません。
ここで目的の結果を確認できます。http://jsfiddle.net/yg8rz/4/ これを機能させるには、Webkitブラウザーを使用している必要があります(この場合)。
注:より良いcssプラクティス(javascriptトランジションなしで未来に傾く)のために、要素が子要素にアクティブクラスを直接適用するのではなく、祖先からアクティブクラスを継承することが重要です。
ie8 +で機能するように、このソリューションでjavascriptを使用することも重要です。