CSS offset-path(モーションパス)を使って要素を円形パス上に移動させる方法
CSSでは、offset-pathプロパティを使用することで、要素にモーションパス(移動経路)を定義できます。このプロパティを活用すると、要素を指定したパスに沿ってアニメーションさせることが可能です。
構文
CSS offset-pathプロパティの基本的な構文は以下のとおりです。
Selector {
offset-path: /*値*/
}offset-pathとoffset-distanceの組み合わせ
offset-pathは単独では機能せず、通常offset-distanceプロパティと組み合わせて使用します。offset-distanceは、パスの始点からどの位置まで進んだかをパーセンテージで表します。この値を@keyframesで0%から100%まで変化させることで、要素がパス全体を一周するアニメーションを実現できます。
サンプルコード
以下の例では、SVGパスで円形の軌道を定義し、そのパスに沿って要素を連続的に移動させています。
<!DOCTYPE html>
<html>
<head>
<style>
div {
margin: 5%;
width: 35px;
height: 35px;
offset-path: path('M70,0 A70,70 0 1,1 70,140 A70,70 0 1,1 70,0');
animation: round 3000ms infinite ease-in-out;
background: darkseagreen;
border-radius: 30%;
}
@keyframes round {
0% {
offset-distance: 0%;
}
100% {
offset-distance: 100%;
}
}
</style>
</head>
<body>
<hr/>
<div></div>
</body>
</html>コードの解説
- path('M70,0 A70,70 0 1,1 70,140 A70,70 0 1,1 70,0'):SVGのパスコマンドで円形の軌道を描いています。Aコマンド(楕円弧)を2つ組み合わせることで完全な円を作成しています。
- animation: round 3000ms infinite ease-in-out;:3秒ごとに繰り返される滑らかなアニメーションを設定しています。
- @keyframes round:offset-distanceを0%から100%へ変化させることで、要素がパスの始点から終点まで移動します。
実行結果
このコードを実行すると、緑色の要素が円形の軌道に沿ってぐるぐると回転し続けます。
-
CSSで矢印を作成する方法!borderとrotateを組み合わせた4方向矢印の実装テクニック
CSSでは、画像やアイコンフォント、外部ライブラリに頼らなくても、border(境界線)とtransform: rotate()を組み合わせるだけで、上下左右どの方向の矢印でも簡単に作成できます。境界線でL字型の角を作り、それを回転させるのが基本的な考え方です。 サンプルコード <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>
-
CSSアニメーションで要素を円形の軌道上に移動させる方法
CSSアニメーションを活用すると、rotate(回転)とtranslate(平行移動)を組み合わせることで、要素をさまざまな方法で動かすことができます。 本記事では、このテクニックを応用して、要素を円形の軌道(サーキュラーパス)に沿って移動させる方法を解説します。 円形移動の仕組み ポイントは、@keyframesの中で以下の3つの変換を組み合わせることです。 rotate():要素を回転させ、移動する向きを決める translateX():回転させた方向へ要素を押し出し、中心からの距離を作る rotate()(逆回転):要素自体の傾きを打ち消し、常に直立した状態を保つ アニメーションの進