jQueryを使用してトランジションを実行する際に問題が発生します。
最初のトランジションが完了したら、他のdivをフェードインさせたいが、不透明度はトランジションを実行しない。それはopacity: 1;
にまっすぐ行く。
私はsetTimeout
を回避することができましたが、私のコードか何かCSSトランジションがトランジション終了後に起動しない
var endTransition = "transitionend";
$('#test').click(function() {
$(this).css('opacity', '0').one(endTransition, function() {
$('#test').css('display', 'none');
$('#test2').css('display', 'inline-block').css('opacity', '1');
});
});
$('#test2').click(function() {
$(this).css('opacity', '0').one(endTransition, function() {
$('#test2').css('display', 'none');
$('#test').css('display', 'inline-block').css('opacity', '1');
});
});
#test {
display: inline-block;
background: red;
opacity: 1;
width: 200px;
height: 200px;
transition: opacity .5s ease;
}
#test2 {
background: blue;
display: none;
opacity: 0;
width: 200px;
height: 200px;
transition: opacity .5s ease;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='test'></div>
<div id='test2'></div>
( '表示'、 'インラインブロック')'を呼び出す前に、 '.css( 'opacity'、 '1')'です。これは、あなたの要素がCSSの 'display:inline-block'のために直ちに表示される理由です。 –