--- title: 'HTMLElement: transitionrun イベント' slug: Web/API/HTMLElement/transitionrun_event tags: - CSS Transitions - CSS トランジション - DOM - Event - Reference - Transitions - Web - events - transitionrun - イベント - ウェブ - トランジション translation_of: Web/API/HTMLElement/transitionrun_event ---
{{APIRef}}{{SeeCompatTable}}

transitionrun イベントは、 CSS トランジションが最初に生成されたとき、すなわち、 {{cssxref("transition-delay")}} が始まる前に発生します。

バブリング あり
キャンセル可能 いいえ
インターフェイス {{domxref("TransitionEvent")}}
イベントハンドラープロパティ {{domxref("GlobalEventHandlers/ontransitionrun", "ontransitionrun")}}

このコードは transitionrun イベントのリスナーを追加します。

el.addEventListener('transitionrun', () => {
  console.log('Transition is running but hasn\'t necessarily started transitioning yet');
});

同じですが、 ontransitionrun プロパティを addEventListener() の代わりに使用した例です。

el.ontransitionrun = () => {
  console.log('Transition started running, and will start transitioning when the transition delay has expired');
};

ライブ例

以下の例では、単純な {{htmlelement("div")}} 要素を用い、遅延を含むトランジションでスタイル付けしています。

<div class="transition">Hover over me</div>
<div class="message"></div>
.transition {
  width: 100px;
  height: 100px;
  background: rgba(255,0,0,1);
  transition-property: transform, background;
  transition-duration: 2s;
  transition-delay: 1s;
}

.transition:hover {
  transform: rotate(90deg);
  background: rgba(255,0,0,0);
}

このために、 {{domxref("HTMLElement/transitionstart_event", "transitionstart")}} および {{domxref("HTMLElement/transitionrun_event", "transitionrun")}} イベントが発生する場所を示す JavaScript を追加します。

const el = document.querySelector('.transition');
const message = document.querySelector('.message');

el.addEventListener('transitionrun', function() {
  message.textContent = 'transitionrun fired';
});

el.addEventListener('transitionstart', function() {
  message.textContent = 'transitionstart fired';
});

el.addEventListener('transitionend', function() {
  message.textContent = 'transitionend fired';
});

{{ EmbedLiveSample('Live_example', '100%', '150px') }}

相違点は以下のとおりです。

transitionrun は、遅延時間が終わる前にトランジションが中止されたときにも発生します。トランジションの遅延時間がなかったり、 transition-delay が負の数であった場合には、 transitionruntransitionstart の両方が発生します。

仕様書

仕様書 状態 備考
{{SpecName('CSS3 Transitions', '#transitionrun', 'transitionrun')}} {{Spec2('CSS3 Transitions')}} 初回定義

ブラウザーの互換性

{{Compat("api.HTMLElement.transitionrun_event")}}

関連情報