HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

HTML DOM TransitionEventのelapsedTimeプロパティの使い方を解説

TransitionEvent elapsedTimeプロパティとは

HTML DOMのTransitionEvent elapsedTimeプロパティは、トランジションイベントが発生した時点で、そのトランジションが何秒間実行されていたかを表す数値を返します。このプロパティは読み取り専用であり、transitionendイベントなどトランジション関連のイベントハンドラ内で利用することで、CSSトランジションの進行状況や完了までの所要時間を簡単に把握できます。

構文

トランジションが実行されていた秒数を取得するには、以下のように記述します。

transitionEvent.elapsedTime

TransitionEvent elapsedTimeプロパティの使用例

次の例では、円形のdiv要素にマウスオーバーすると右方向へ80px移動するトランジション(1.3秒)を設定し、transitionendイベントが発生したタイミングでelapsedTimeプロパティの値を画面に表示しています。

サンプルコード

<!DOCTYPE html>
<html>
<head>
<title>TransitionEvent elapsedTime</title>
<style>
   form {
      width:70%;
      margin: 0 auto;
      text-align: center;
   }
   * {
      padding: 2px;
      margin:5px;
   }
   input[type="button"] {
      border-radius: 10px;
   }
   #playArea {
      display: inline-block;
      border-radius: 50%;
      background-color: #DC3545;
      width: 50px;
      height: 50px;
      border: 3px solid #AC3509;
      transition: all 1.3s ease;
   }
   #playArea:hover {
      transform:translateX(80px);
   }
</style>
</head>
<body>
   <form>
      <fieldset>
         <legend>TransitionEvent-elapsedTime</legend>
         <div id="playArea"></div>
         <div id="divDisplay"></div>
      </fieldset>
   </form>
<script>
   var divDisplay = document.getElementById("divDisplay");
   var playDisplay = document.getElementById("playArea");
   function getElapsedTime(event) {
      divDisplay.textContent = 'トランジションの経過時間: '+event.elapsedTime+' 秒';
   }
   playDisplay.addEventListener("transitionend", getElapsedTime);
</script>
</body>
</html>

実行結果

div要素にマウスオーバーする前の表示は以下のとおりです。

HTML DOM TransitionEventのelapsedTimeプロパティの使い方を解説

div要素にマウスオーバーしてトランジションが完了すると、経過時間が表示されます。

HTML DOM TransitionEventのelapsedTimeプロパティの使い方を解説

ポイントまとめ

  • elapsedTimeプロパティは、イベント発生時点でのトランジション実行時間を秒単位の数値で返します。
  • 主にtransitionruntransitionstarttransitionendtransitioncancelといったTransitionEvent系のイベントと組み合わせて使われます。
  • transitionendイベントでは、設定したトランジション時間とほぼ同じ値が返されるため、アニメーション完了後の処理を実装する際のデバッグにも役立ちます。
  1. HTML DOM offsetWidthプロパティの使い方をわかりやすく解説

    HTML DOM offsetWidthプロパティとは HTML DOMのoffsetWidthプロパティは、要素の実際の表示幅に対応する数値(ピクセル単位の整数)を返します。この幅にはパディング・ボーダー(境界線)・スクロールバーが含まれますが、マージンは含まれません。なお、offsetWidthは読み取り専用のプロパティのため、値を直接代入することはできません。 構文 HTMLElement.offsetWidth 要素が非表示(display: none など)の状態にある場合は、0 が返されます。 関連プロパティとの違い offsetWidth: パディング+ボーダー+スクロールバー

  2. HTML DOM TransitionEventのpropertyNameプロパティとは?使い方とサンプルコード

    TransitionEvent propertyNameプロパティとはHTML DOM の TransitionEvent オブジェクトの propertyName プロパティは、transitionstart や transitionend などのトランジションイベントが発生した際に、そのトランジションで実際に使用された CSS プロパティ名を文字列として返します。例えば、要素の transform プロパティに対してトランジションアニメーションが実行された場合、このプロパティは「transform」という値を返します。どの CSS プロパティがアニメーション対象だったのかを動的に判別したい