CSSのstroke-offsetがアニメーションを右から始める理由とその対処方法


  1. stroke-offsetの仕組み stroke-offsetは、SVG(Scalable Vector Graphics)要素の線の描画位置を調整するためのCSSプロパティです。このプロパティを使用すると、線の描画をアニメーション化することができます。しかし、stroke-offsetの初期値は0であり、アニメーションが開始されると、線の描画位置が0から変化していくため、右から左へと描画が進んでいくように見えます。

  2. stroke-dasharrayとstroke-dashoffsetの組み合わせ stroke-dasharrayとstroke-dashoffsetの組み合わせを使用することで、stroke-offsetのアニメーションを左から始めることができます。以下に例を示します。

.stroke-animation {
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;
  animation: dash 5s linear forwards;
}
@keyframes dash {
  to {
    stroke-dashoffset: 0;
  }
}

この例では、stroke-dasharrayを線の全長に設定し、stroke-dashoffsetを線の全長と同じ値に設定しています。そして、アニメーションを定義するためのキーフレームでstroke-dashoffsetを0に変化させることで、線の描画が左から始まるようになります。

  1. transformプロパティを使用する もう一つの方法として、transformプロパティを使用して要素を水平反転させる方法があります。これにより、stroke-offsetのアニメーションが右からではなく左から始まるように見えます。以下に例を示します。
.stroke-animation {
  transform: scaleX(-1);
  animation: offset 5s linear forwards;
}
@keyframes offset {
  to {
    stroke-offset: 1000;
  }
}

この例では、要素を水平方向に反転させるためにtransformプロパティのscaleX関数を使用しています。そして、アニメーションを定義するためのキーフレームでstroke-offsetを適切な値に設定することで、線の描画が左から始まるようになります。

以上が、stroke-offsetがアニメーションを右から始める理由とその対処方法のいくつかです。これらの方法を使用することで、stroke-offsetのアニメーションを左から始めることができます。