アフィリエイト広告を利用しております。
参考サイトの記載がある場合はそちらの方がより詳しく記載説明がされているのでぜひそちらもご覧ください。
そのままコピペしても反映されないものもあります。サイトごとに変えないといけない箇所がありますので修正してください。

CSS HTML JavaScript

アニメーションやトランジションを取り入れて、よりインタラクティブなWebデザインを目指そう!

Webデザインの次のステップとして、アニメーションやトランジションを活用して、ユーザーにとって魅力的でインタラクティブな体験を提供してみましょう。
適切なアニメーションを加えることで、Webサイトに動きや楽しさを与えるだけでなく、ユーザーの目を引き、重要な情報を伝える手助けになります。

この記事では、基本的なトランジションやアニメーションの作り方から、実践的な例まで解説します。


アニメーションとトランジションの基本

トランジション

トランジションは、ある要素の状態が変化する際にその動きをスムーズにする効果です。

アニメーション

アニメーションは、複数の状態をタイムラインに沿って動的に変化させる効果を作ります。


トランジションの基本例

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

ボタンにマウスを乗せたとき、背景色がスムーズに変化するトランジションを作成してみましょう。

<button class="hover-button">Hover Me</button>
.hover-button {
	background-color: #007BFF;
	color: white;
	border: none;
	padding: 10px 20px;
	font-size: 16px;
	cursor: pointer;
	transition: background-color 0.3s ease;
}

.hover-button:hover {
	background-color: #0056b3;
}

解説

  • transition: background-color 0.3s ease;: 背景色の変化を0.3秒でスムーズに実行します。
  • ホバー時に新しい背景色(#0056b3)が適用されます

アニメーションの基本例

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

要素がページに表示される際、徐々に透明度を上げるフェードイン効果を作りましょう。

<div class="fade-in">フェードイン効果のテキスト</div>
.fade-in {
	opacity: 0;
	animation: fadeIn 2s forwards;
}

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

解説

  • @keyframes: アニメーションのステップを定義します。
  • animation: fadeIn 2s forwards;: アニメーション名fadeInを適用し、2秒間かけてフェードインします。

実践的なアニメーションの例

カードホバーエフェクト

カード型の要素にアニメーションを加えることで、マウスホバー時に動きのあるインタラクションを実現します。

<div class="card">
	<h3>カードタイトル</h3>
	<p>カードの内容がここに入ります。</p>
</div>
.card {
	background-color: #ffffff;
	border: 1px solid #ddd;
	border-radius: 10px;
	padding: 20px;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
	transform: translateY(-10px);
	box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
}

解説

  • transform: translateY(-10px);: カードが浮き上がるように見せます。
  • box-shadow: ホバー時に影を強調して立体感を演出します。

JavaScriptを使ったアニメーション

CSSだけでなく、JavaScriptを使うことでより高度なアニメーションが可能になります。

スクロール時にアニメーションを実行

要素が画面内に入ったときにフェードインする効果をJavaScriptで実装します。

window.addEventListener("scroll", function () {
	const elements = document.querySelectorAll(".scroll-animation");
		elements.forEach((element) => {
			const rect = element.getBoundingClientRect();
			if (rect.top < window.innerHeight) {
			element.classList.add("active");
		}
	});
});
<div class="scroll-animation">スクロールアニメーションの例</div>

.scroll-animation {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.5s ease, transform 0.5s ease;
}

.scroll-animation.active {
	opacity: 1;
	transform: translateY(0);
}

解説

  • 要素が画面内に入ったらactiveクラスを追加し、フェードインを実行します。
  • getBoundingClientRect: 要素の位置を取得します。

まとめ

アニメーションやトランジションを効果的に使うことで、Webサイトがより動的で魅力的になります。
特にユーザーの行動に応じたインタラクションを提供することで、使いやすさや視覚的な楽しさを向上させることができます。

おすすめ記事

1
制作理由 ワードプレスのクラシックエディタを直接使っているといつも思うことがありました [Tab]キー押して空白入れて見やすくインデントしたい! この記事を書くまでは入れないか、スペースキーを押して誤 ...
2
制作理由 ワードプレスのクラシックエディタを直接使っているといつも思うことがありました コード追加ボタンを自由に追加出来たら便利じゃない? この記事を書くまでは、クリップボード貼り付けアプリ[Clib ...
3
アプリ制作するに至った理由 納品代行の仕事をしていて思ったことがあります 納品代行をしていると本当に様々なお客様から様々な商品が届きます その中でも特に注意しているのが、「見た目ほぼ同じだけど違う商品 ...

-CSS, HTML, JavaScript
-