目を引く!コピペで使えるリンクアニメーション5選

CSS、JavaScript

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;
}
  • display: flex; と flex-direction: column;: これにより、ボタンを縦に並べることができます。
  • gap: 16px;: ボタン同士の間隔を設定します。
  • transition: all 0.3s ease;: ホバー時のアニメーションを滑らかにするための設定です。

スライドアニメーションボタン

今回は、スライドアニメーションを適用したボタンの作成方法を紹介します。ホバー時に背景がスライドするエフェクトは、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;
}
  • position: relative; と overflow: hidden;: これらは、スライドアニメーションを実現するために必要な設定です。
  • ::before 疑似要素: これを使って背景のスライドを表現します。left: -100%; で初期状態を左に隠し、left: 0; で表示します。
  • z-index: これを使って、背景とテキストの重なり順を制御します。

テキストスライドアニメーションボタン

今回は、テキストが上下にスライドするアニメーションボタンの作成方法を紹介します。ホバー時にテキストが切り替わるエフェクトは、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%);
}
  • data-text 属性: これを使って、ホバー時に表示するテキストを指定します。
  • ::before 疑似要素: これを使って、隠れたテキストを表示します。content: attr(data-text); で data-text 属性の値を読み込みます。
  • 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%;
}
  • position: relative;: ::after 疑似要素を配置するための基準点となります。
  • ::after 疑似要素: アンダーラインを表現するために使用します。width: 0%; で初期状態を非表示にし、width: 100%; で表示します。
  • transition: width 0.3s ease;: アニメーションを滑らかにするために使用します。

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

今回は、ホバー時に矢印がスライドするアニメーションリンクの作成方法を紹介します。矢印が滑らかに移動することで、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%);
}
  • ::before と ::after 疑似要素: これらを使って2つの矢印を作成します。初期状態では ::after を隠し、ホバー時に ::before を移動させて ::after を表示します。
  • transform: translateX();: これを使って、矢印を水平方向に移動させます。
  • transition: これを使って、アニメーションを滑らかにします。cubic-bezier を使用することで、より自然な動きを実現しています。

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サイトをより魅力的にするために、これらのアニメーションを活用してみてください。

タイトルとURLをコピーしました