ホームページ >ウェブフロントエンド >CSSチュートリアル >JavaScript を使用して、さまざまなブラウザ間で CSS3 トランジション終了イベントを正規化するにはどうすればよいですか?

JavaScript を使用して、さまざまなブラウザ間で CSS3 トランジション終了イベントを正規化するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-24 00:00:15770ブラウズ

How Can I Normalize CSS3 Transition End Events Across Different Browsers Using JavaScript?

CSS3 遷移終了イベントのブラウザ間正規化

問題ステートメント:

異なるブラウザーでは、CSS3 遷移終了イベントは異なる方法でトリガーされます。 Webkit では「webkitTransitionEnd」、Firefox では「transitionEnd」、Opera では「oTransitionEnd」。純粋な JavaScript でこれらのバリエーションをシームレスに処理するにはどうすればよいでしょうか?

解決策:

ブラウザごとに個別のイベント リスナーを実装するのは非効率的で面倒です。代わりに、Modernizr で提案されているより洗練されたソリューションを使用できます。

function transitionEndEventName() {
  var el = document.createElement('div'),
      transitions = {
        'transition':'transitionend',
        'OTransition':'otransitionend',
        'MozTransition':'transitionend',
        'WebkitTransition':'webkitTransitionEnd'
      };

  for (var i in transitions) {
    if (transitions.hasOwnProperty(i) && el.style[i] !== undefined) {
      return transitions[i];
    }
  }
}

この関数は、要素を作成し、潜在的なイベント名を反復処理することによって、現在のブラウザーでサポートされている遷移イベントをチェックします。見つかった場合は、適切なイベント名を返します。

このソリューションを使用するには:

var transitionEnd = transitionEndEventName();
element.addEventListener(transitionEnd, theFunctionToInvoke, false);

このアプローチにより、ブラウザ間の互換性が確保され、ブラウザのスニッフィングや複数のイベントの割り当てが回避されます。

以上がJavaScript を使用して、さまざまなブラウザ間で CSS3 トランジション終了イベントを正規化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。