要素に CSS トランジションを適用しようとしていますが、完了する前のある時点で、トランジションを完全に削除して別のトランジションを開始します。
この質問は、そのトラックでトランジションを停止する方法に答えますが、問題を説明するために jsFiddle を変更しました。
var $div = $('div');
$div.click(function(){
$div.css({
left: 0,
transition: 'none'
});
$div.transit({
top: 600,
},5000);
});
function complete(){
$div.css('backgroundColor', 'blue');
}
$div.transit({left: 600}, 5000, 'linear', complete);
私がしたいのは、ボックスがその位置をリセットしてクリックすると下に移動し、最初のトランジションで完了したハンドラーが起動しないようにすることです。
クリックするとボックスの位置がリセットされますが、最初のトランジションが完了するまで下に移動しません (最初のトランジションからのモーションはもう発生していません)。完了したハンドラーは、最初の遷移でも起動します。