CSS3アニメーション入門:滑らかな動きで魅せるWeb表現 | 【福岡】LP・ランディングページ・ホームページ制作|セルピー

CSS3アニメーション入門:滑らかな動きで魅せるWeb表現

1. はじめに

  • CSSアニメーションとは?
    • CSSのアニメーション機能を使えば、要素に動きを加え、ユーザー体験を向上させることができる。
    • JavaScriptを使わずに、滑らかな動きやインタラクティブな効果を実現可能。
  • CSSアニメーションの用途
    • ボタンのホバー効果
    • ページロード時のアニメーション
    • スクロール時の動き
  • この記事のゴール
    • CSSアニメーションの基本的な使い方を理解し、実践的なテクニックを習得する。

🎬 2. CSSアニメーションの基本

① アニメーションの構文

CSSアニメーションは主に以下の2つで構成される:

  1. @keyframes:アニメーションの動きを定義
  2. アニメーションプロパティ:アニメーションの詳細を指定
テスト1

基本構文

@keyframes animationName {
from {
opacity: 0;
}
to {
opacity: 1;
}
}

.element {
animation: animationName 2s ease-in-out infinite;
}

② アニメーションの主なプロパティ

プロパティ説明
animation-name使用する@keyframesの名前animation-name: fadeIn;
animation-durationアニメーションの時間animation-duration: 2s;
animation-timing-function動きの加速・減速animation-timing-function: ease;
animation-delay開始までの遅延時間animation-delay: 1s;
animation-iteration-count繰り返し回数animation-iteration-count: infinite;
animation-direction再生方向animation-direction: alternate;

🎥 3. 基本的なアニメーション例

① フェードインアニメーション

テスト2
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}

.fade-in {
animation: fadeIn 2s ease-in-out;
}

② スライドインアニメーション

テスト2
@keyframes slideIn {
from {
transform: translateX(-100%);
}
to {
transform: translateX(0);
}
}

.slide-in {
animation: slideIn 1s ease-out;
}

③ 回転アニメーション

@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}

.rotate {
animation: rotate 3s linear infinite;
}

🛠️ 4. 実践的なアニメーションデザイン

① ボタンホバーエフェクト

.button {
background: #4caf50;
color: white;
padding: 10px 20px;
border-radius: 5px;
transition: transform 0.3s ease;
}

.button:hover {
transform: scale(1.1);
}

② ページロード時のアニメーション

@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

.page-load {
animation: fadeInUp 1s ease-out;
}

③ 無限ループする背景アニメーション

@keyframes gradientMove {
0% {
background-position: 0% 50%;
}
100% {
background-position: 100% 50%;
}
}

.animated-bg {
background: linear-gradient(90deg, #ff7e5f, #feb47b);
background-size: 400% 400%;
animation: gradientMove 5s infinite alternate;
}

📐 5. アニメーションのタイミング関数

関数名効果
linear一定の速度
easeゆっくり始まり終わる
ease-inゆっくり始まる
ease-outゆっくり終わる
ease-in-outゆっくり始まり、終わる

例:ease-in-out を使ったアニメーション

@keyframes bounce {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-30px);
}
}

.bounce {
animation: bounce 1s ease-in-out infinite;
}

🐞 6. よくあるエラーと解決策

  1. アニメーションが動かない
    animation-name@keyframes の名前が一致しているか確認。
  2. 遅延やタイミングが意図通りにならない
    animation-delayanimation-timing-functionを調整。
  3. 要素が不自然に動く
    transform-originを調整。

🚀 7. 応用テクニック

① 複数のアニメーションを組み合わせる

.animation-combo {
animation: fadeIn 2s ease-in-out, slideIn 1s ease-out;
}

② イベントトリガーアニメーション

.element:hover {
animation: bounce 0.5s ease-in-out;
}

🎓 8. まとめ

  • CSSアニメーションはユーザー体験を向上させる重要な要素
  • 基本プロパティや@keyframesを理解することが大切
  • シンプルなアニメーションから複雑な動きまで、実践を重ねてスキルを磨こう!