こんにちは!今回は、CSSアニメーションを駆使して、斜め方向に伸びるオブジェクトを作成する方法をご紹介します。このアニメーションは、ユーザーの注目を引くデザインや動的なインタラクションに活用できます。
初学者の方でも簡単に取り組めるように、コピペで実装できるコード例を用意しています。これを使って、あなたのウェブページにも個性的なアニメーションを追加してみましょう!
サンプルコード
HTML
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="styles.css"> <title>斜めアニメーション</title> </head> <body> <div class="box"></div> </body> </html>
CSS
.box {
width: 100px;
height: 100px;
position: absolute;
top: 0;
left: 0;
overflow: hidden;
transform: skewX(45deg);
}
.box::before {
content: '';
display: block;
width: 100%;
height: 0;
background-color: blue;
animation: diagonal-grow 5s forwards;
}
@keyframes diagonal-grow {
0% {
height: 0;
}
100% {
height: 100%;
}
}
解説
このサンプルでは、
の.box要素に::before擬似要素を使用しています。最初に、.box要素を斜めにするために、transform: skewX(45deg)を適用しています。次に、.box::before擬似要素のheightをアニメーションさせることで、要素が斜めに伸びるように見えます。
@keyframesのdiagonal-growアニメーションで、0%(開始時)から100%(終了時)までのheightを指定しています。アニメーションが終了した後に最終的な状態が保持されるように、animationプロパティにforwardsを追加しています。
よくある質問(FAQ)
Q. CSSのtransformで斜めに引っ張ったような変形(skew)はどのようにつけますか?
A.
transform: skewX(10deg)でX軸方向に傾け、skewY(10deg)でY軸方向に傾けます。両軸:skew(10deg, 5deg)。よく使われるパターン:テキストやボタンの背景に斜め角のデザインを付ける場合、疑似要素にtransform: skewX(-15deg)を適用します。Q. アニメーションのイージング(easing)の種類と使い分けを教えてください。
A.
linear:一定速度。ease:ゆっくり始まり途中速くなりゆっくり終わる(デフォルト)。ease-in:ゆっくり始まる。ease-out:ゆっくり終わる(バウンス等に使いやすい)。cubic-bezier(x1,y1,x2,y2)で完全カスタム。自然な動きにはease-outが使いやすいです。Q. CSSアニメーションとJSアニメーション(Web Animations API)の使い分けは?
A. シンプルで繰り返す・ホバー時などの決まったアニメーションにはCSSアニメーション(@keyframes)。動的な値・インタラクションによる制御・プログラムから一時停止/再開が必要な場合にはWeb Animations API(またはGSAP等)が適しています。CSSはシンプルで宣言的、JSはより強力で制御が細かいです。
まとめ
本記事では、CSSアニメーションを用いて斜め方向に伸びるオブジェクトを作成する方法を解説しました。このアニメーションは、ユーザーの興味を引くデザインや動的なインタラクションを実現する際に有効です。提供したコード例を利用して、初学者の方でも簡単にこのアニメーションを実装できることができます。
今回紹介した斜めに伸びるオブジェクトのアニメーションを、ぜひあなたのプロジェクトやウェブサイトに取り入れて、独自のデザインや表現を楽しんでください。

