cssアニメーションについて
CSSアニメーションで魅力的なWebサイトを作る
近年、Webサイトにおけるデザインやユーザー体験(UX)の向上において、CSSアニメーションは欠かせない要素となっています。スムーズな動きや視覚的な変化を加えることで、静的なページが一気に魅力的なものになります。今回は、CSSアニメーションの基本から、実際に使えるテクニックまでをご紹介します。
CSSアニメーションの基本
CSSアニメーションは主に以下の2つの方法で実現されます。
transition
を使用する方法
要素の状態が変化する際に、スムーズなアニメーション効果を適用するものです。
.button {
background-color: #3498db;
transition: background-color 0.3s ease-in-out;
}
.button:hover {
background-color: #2980b9;
}
- この例では、ボタンの背景色がマウスホバー時にゆっくり変化します。
@keyframes
を使用する方法
より複雑なアニメーションを実現する際に使用します。
@keyframes fadeIn {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.fade-in {
animation: fadeIn 2s ease-in-out;
}
- このコードでは、
fade-in
クラスが付いた要素が2秒かけて徐々に表示されます。
実践的なCSSアニメーションの活用例
1. ローディングアニメーション
Webサイトのロード中に表示されるアニメーションは、ユーザーの離脱を防ぐ効果があります。
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.spinner {
width: 50px;
height: 50px;
border: 5px solid #f3f3f3;
border-top: 5px solid #3498db;
border-radius: 50%;
animation: spin 1s linear infinite;
}
この例では、スピナーが回転するアニメーションを作成しています。
2. ホバーエフェクト
ボタンやリンクにホバーエフェクトを加えると、クリックする意欲を高めます。
.button {
position: relative;
display: inline-block;
padding: 10px 20px;
color: #fff;
background: #3498db;
overflow: hidden;
transition: background 0.3s ease;
}
.button::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: rgba(255, 255, 255, 0.3);
transition: left 0.3s ease;
}
.button:hover::before {
left: 0;
}
このコードでは、ホバー時に光がスライドするような効果を追加しています。
3. ページ遷移のスムーズなアニメーション
ページ内リンクやコンテンツの遷移にアニメーションを加えることで、より洗練された印象を与えます。
@keyframes slideIn {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(0);
}
}
.slide-in {
animation: slideIn 1s ease-out;
}