以下の例では、CSSを使用してbackground-color
遷移を行い、両方のdivのtransitionend
イベントを処理しようとしています。初期状態と最終状態が同一の場合、遷移先は起動しません。
残念ながら、transitionend
は、最初と最後の背景色としてdiv2
のために解雇されていませんが同じである:
var div1 = $('#div1');
var div2 = $('#div2');
$('#toggle').on('click', function() {
div1.toggleClass('toggled');
div2.toggleClass('toggled');
})
div1.on('transitionend', function() {
console.log('div1 transitionend')
})
div2.on('transitionend', function() {
console.log('div2 transitionend')
})
div {
width: 100px;
height: 100px;
transition: background-color .5s;
}
#div1 {
background-color: red;
}
#div2 {
background-color: green;
}
.toggled {
background-color: green !important;
}
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<div id="div1"></div>
<div id="div2"></div>
<button id="toggle">Toggle animation</button>
は、どのように私も例にtransitionend
を扱うachiveことができたときに、初期状態と最終状態同じだ?
私が間違っていない場合は、値が異なる場合にのみトランジションがトリガーされます。だから、もしトランジションそのものが起こらなければ、私はそのイベントが引き起こされる可能性はないと思う。 – Harry
仕様への参照はありますか?私は私の質問に関連する何かを見つけることができません –
いいえ、私はブラウザがどのように動作することを期待しています。遷移するイベントがないときに遷移イベントを開始することは、過剰な操作です。私は仕様が*いつ遷移*を開始するためのものを定義していたとは思わない、彼らはそれを実装に残していただろうが、私はあなたのためにそれをチェックします:) – Harry