ontransitionend
は GlobalEventHandlers
ミックスインのプロパティで、 transitionend
イベントを処理するイベントハンドラー (EventHandler
) です。
transitionend
イベントは、 CSS トランジションが完了すると発生します。
トランジションの実行が完了する前に対象ノードからトランジションが削除された場合、 transitionend
イベントは生成されません。これは、対象に適用される transition-property
属性の値を変更することで発生します。もう一つは、 display
属性が none
に設定されている場合です。
構文
var transitionEndHandler = target.ontransitionend;
target.ontransitionend = Function
値
関数 (Function
) で、 CSS トランジションの完了を示す transitionend
イベントが target
上で発生した場合に呼び出されるものです。対象となるオブジェクトは HTML 要素 (HTMLElement
)、文書 (Document
)、ウィンドウ (Window
) です。この関数は単一の引数、発生したイベントを記述する TransitionEvent
を単一の引数として受け取ります。イベントの TransitionEvent.elapsedTime
プロパティの値は、 transition-duration
の値と同じでなければなりません。
elapsedTime
には、トランジション効果が始まる前の時間は含まれていません。つまり、 transition-delay
の値は、待ち時間が終了してアニメーションが始まるまでは 0 である elapsedTime
の値に影響しません。
例
この例では、transitionrun
イベントと transitionend
イベントを使用して、トランジションの開始と終了を検出し、トランジション中にテキスト更新が発生するようにしています。これは、アニメーションやその他のエフェクトを起動して、反応を連鎖させるために使用することもできます。
HTML
これは単純に <div>
を作成するだけで、以下の CSS でスタイルを変更して、ボックスの大きさを変更したり色を変更したりします。
<div class="box"></div>
CSS
以下の CSS は、ボックスのスタイルを設定し、ボックスの色と大きさを変化させ、マウスカーソルがボックスの上に乗っている間にボックスが回転するようなトランジション効果を適用しています。
.box {
margin-left: 70px;
margin-top: 30px;
border-style: solid;
border-width: 1px;
display: block;
width: 100px;
height: 100px;
background-color: #0000FF;
color: #FFFFFF;
padding: 20px;
font: bold 1.6em "Helvetica", "Arial", sans-serif;
transition: width 2s, height 2s, background-color 2s, transform 2s, color 2s;
}
.box:hover {
background-color: #FFCCCC;
color: #000000;
width: 200px;
height: 200px;
transform: rotate(180deg);
}
JavaScript
次に、トランジションの開始時と終了時にボックスのテキストコンテンツを変更するためにイベントハンドラ-を設定します。
let box = document.querySelector(".box");
box.ontransitionrun = function(event) {
box.innerHTML = "Zooming...";
}
box.ontransitionend = function(event) {
box.innerHTML = "Done!";
}
結果
結果のコンテンツは次のようになります。
マウスカーソルをボックスの上に置いてから、マウスを移動させるとどうなるかに注目してください。
仕様書
仕様書 | 状態 | 備考 |
---|---|---|
CSS Transitions ontransitionend の定義 |
草案 |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- このハンドラーを起動する
transitionend
イベント TransitionEvent
- トランジションが開始したときに発生する
transitionrun
イベント