Webサイトの印象を大きく左右するLinkアニメーション。今回は、あなたのサイトをより魅力的にする厳選されたLinkアニメーションを5つご紹介します。コピペで簡単に実装できるものばかりなので、初心者の方でも安心!ぜひ、あなたのサイトにぴったりのアニメーションを見つけて、Webサイトをレベルアップさせてください。
シンプルスライド
今回は、ボタンにシンプルなアニメーションを加える方法を紹介します。基本のボタンデザインにホバーエフェクトを加えることで、サイトに動きと個性をプラスできます。
サンプル
See the Pen Link00 by kasasagi_kmnmc (@kasasagi_kmnmc) on CodePen.
コード
HTML
<div class="button-group-vertical">
<a href="#" class="btn-basic">シンプルボタン</a>
</div>
CSS
.button-group-vertical {
display: flex;
flex-direction: column;
gap: 16px; /* ボタンの上下間隔 */
align-items: flex-start; /* 左寄せ。中央にしたい場合は center に変更 */
}
.btn-basic, .btn-slide {
display: inline-block;
padding: 12px 24px;
text-decoration: none;
font-weight: bold;
border: 2px solid #000;
font-family: sans-serif;
width: fit-content; /* コンテンツ幅に調整。幅を揃えたい場合は指定してもOK */
}
/* シンプルボタン */
.btn-basic {
background-color: #fff;
color: #000;
transition: all 0.3s ease;
}
.btn-basic:hover {
background-color: #000;
color: #fff;
}
スライドアニメーションボタン
今回は、スライドアニメーションを適用したボタンの作成方法を紹介します。ホバー時に背景がスライドするエフェクトは、Webサイトに動きと個性を加えるのに最適です。
サンプル
See the Pen link01 by kasasagi_kmnmc (@kasasagi_kmnmc) on CodePen.
コード
HTML
<div class="button-group-vertical">
<a href="#" class="btn-slide"><span>アニメ付きボタン</span></a>
</div>
CSS
.button-group-vertical {
display: flex;
flex-direction: column;
gap: 16px; /* ボタンの上下間隔 */
align-items: flex-start; /* 左寄せ。中央にしたい場合は center に変更 */
}
.btn-slide {
display: inline-block;
padding: 12px 24px;
text-decoration: none;
font-weight: bold;
border: 2px solid #000;
font-family: sans-serif;
width: fit-content; /* コンテンツ幅に調整。幅を揃えたい場合は指定してもOK */
}
/* スライドアニメーションボタン */
.btn-slide {
position: relative;
overflow: hidden;
color: #000;
background: #fff;
transition: color 0.3s ease;
}
.btn-slide::before {
content: "";
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: #000;
transition: left 0.3s ease;
z-index: 0;
}
.btn-slide:hover::before {
left: 0;
}
.btn-slide span {
position: relative;
z-index: 1;
transition: color 0.3s ease;
}
.btn-slide:hover span {
color: #fff;
}
テキストスライドアニメーションボタン
今回は、テキストが上下にスライドするアニメーションボタンの作成方法を紹介します。ホバー時にテキストが切り替わるエフェクトは、Webサイトにインタラクティブな印象を与えます。
サンプル
See the Pen link02 by kasasagi_kmnmc (@kasasagi_kmnmc) on CodePen.
コード
HTML
<a href="#" class="btn-slide-text" data-text="リンクボタン"><span>リンクボタン</span></a>
CSS
.btn-slide-text {
position: relative;
display: inline-block;
width: 200px;
height: 48px;
background-color: #fff;
color: #000;
border: 2px solid #000;
overflow: hidden;
text-align: center;
font-weight: bold;
font-family: sans-serif;
text-decoration: none;
line-height: 48px;
}
/* 中の span(通常テキスト)を上にスライド */
.btn-slide-text span {
display: block;
transition: transform 0.3s ease;
}
/* 疑似要素で下から表示するテキスト */
.btn-slide-text::before {
content: attr(data-text);
position: absolute;
top: 100%;
left: 0;
width: 100%;
height: 100%;
color: #000;
display: flex;
align-items: center;
justify-content: center;
transition: transform 0.3s ease;
}
/* ホバー時:どちらも上下にスライド */
.btn-slide-text:hover span {
transform: translateY(-100%);
}
.btn-slide-text:hover::before {
transform: translateY(-100%);
}
アンダーラインアニメーション
今回は、ホバー時にアンダーラインが左から右に広がるアニメーションリンクの作成方法を紹介します。シンプルなデザインながら、Webサイトに洗練された印象を与えることができます。
サンプル
See the Pen link03 by kasasagi_kmnmc (@kasasagi_kmnmc) on CodePen.
コード
HTML
<a href="#" class="underline-link">リンクテキスト</a>
CSS
/* 共通のリンクスタイル */
.underline-link {
position: relative;
display: inline-block;
text-decoration: none;
color: #000;
font-weight: bold;
font-family: sans-serif;
}
/* アンダーラインの基本設定 */
.underline-link::after {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 0%;
height: 2px;
background-color: #000;
transition: width 0.3s ease; /* 通常のホバーアニメーション */
}
/* ホバー時のアンダーラインが左から右に広がるアニメーション */
.underline-link:hover::after {
width: 100%;
}
スライドアローアニメーション
今回は、ホバー時に矢印がスライドするアニメーションリンクの作成方法を紹介します。矢印が滑らかに移動することで、Webサイトに動きと視覚的な楽しさを加えることができます。
サンプル
See the Pen link04 by kasasagi_kmnmc (@kasasagi_kmnmc) on CodePen.
コード
HTML
<a href="#" class="slide-arrow-link">テキストリンク</a>
CSS
.slide-arrow-link {
position: relative;
display: inline-flex;
align-items: center;
color: #333;
text-decoration: none;
font-size: 1.1em;
padding-right: 2em;
/* overflow: hidden; ← 擬似要素の範囲を制限するため下でwrapを作ります */
}
/* 擬似的なarrow-wrap */
.slide-arrow-link::before,
.slide-arrow-link::after {
content: '';
position: absolute;
top: 50%;
width: 1em;
height: 1em;
font-size: 1em;
line-height: 1em;
pointer-events: none;
transition: transform 0.35s cubic-bezier(.4,1.7,.6,1), opacity 0.2s;
display: inline-block;
}
/* wrapの位置を再現 */
.slide-arrow-link::before,
.slide-arrow-link::after {
right: 0.2em;
margin-left: 0.2em;
/* 右端に配置 */
transform: translateY(-50%);
}
/* 矢印(→)の描画 */
.slide-arrow-link::before,
.slide-arrow-link::after {
content: '→';
color: #333;
opacity: 1;
}
/* 初期状態:afterは左に隠れてる */
.slide-arrow-link::after {
opacity: 0;
transform: translateY(-50%) translateX(-120%);
}
/* hover時:beforeは右に消え、afterは左から現れる */
.slide-arrow-link:hover::before {
opacity: 0;
transform: translateY(-50%) translateX(120%);
}
.slide-arrow-link:hover::after {
opacity: 1;
transform: translateY(-50%) translateX(0%);
}
cubic-bezier
cubic-bezier
は、CSSアニメーションの世界で「動きの演出家」のような役割を果たすものです。アニメーションに緩急をつけ、より自然で魅力的な動きにするために使われます。
cubic-bezier の仕組み
cubic-bezier
は、4つの数字を使って動きのカーブを描きます。このカーブが、アニメーションの速度変化を決定します。
- 最初の2つの数字 (x1, y1): アニメーションの開始時の動き方を決めます。
- 後の2つの数字 (x2, y2): アニメーションの終了時の動き方を決めます。
これらの数字を調整することで、アニメーションが「ゆっくり始まる」「急に加速する」「最後に跳ねる」など、様々な動きを表現できます。
cubic-bezier以外の例
イージング名 | 特徴 | transition例 |
---|---|---|
ease | 標準的な加速と減速 | transition: all 0.3s ease; |
ease-out | 最初速く→ゆっくり | transition: all 0.3s ease-out; |
cubic-bezier()
を使うことで、見た目の動きに一工夫加えることができますが、『ease』や『ease-out』を利用しても簡易的ではありますが動きを表現できますのでお試しください。
まとめ
これらのアニメーションは、CSSのみで実装できるため、JavaScriptの知識がなくても簡単に導入できます。Webサイトのデザインや目的に合わせて、最適なアニメーションを選んでみてください。これらのテクニックを応用することで、さらにオリジナリティあふれるアニメーションを作成することも可能です。ぜひ、あなたのWebサイトをより魅力的にするために、これらのアニメーションを活用してみてください。