5

画面からの要素の削除をアニメーション化するために、CSS トランジションを使用しています。FireFox では、「transitionend」イベントを使用して遷移が完了したことを検出し、DOM から削除します。ただし、これは遷移が実際に発生した場合にのみ機能します。

プロパティの変更によって最終的に「transitionend」イベントが送信されるかどうかを JavaScript から判断するにはどうすればよいですか? 遷移がない場合は、要素を直接削除する必要があります。

明確にするために、プロパティの変更がイベントをトリガーするかどうかを知りたいです (現時点では FireFox で問題ありません)。これは、トランジションの最後にアクションをトリガーする必要があり、トランジションがない場合はすぐにトリガーする必要があるためです。

4

2 に答える 2

2

transitionend主要なベンダー (移行をサポートする)に相当するものは次のとおりです。

  • ウェブキット:webkitTransitionEnd
  • オペラ:oTransitionEnd
  • IE と Mozilla:transitionend

プロパティがアニメーション化されているかどうかを確認するには、目的の値にすぐに到達したかどうかを確認します。

el = $('myElement');
el.css('top', '100px');
if(!el.css('top') == '100px'){
    alert('No transition');
}

ここにデモンストレーションがあります:http://jsfiddle.net/6Q9XC/

于 2012-12-11T10:27:31.317 に答える
1

Modernizr docsから、次のことができると思います。

Modernizr.hasEvent('transitionEnd', $element)
于 2012-12-11T10:48:20.077 に答える