JavaScriptでコピー成功時にアイコンを変化させる方法|UXを高めるフィードバック演出術
スポンサーリンク

こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。

ボタンを押してテキストがコピーされるUI、最近ではもう定番になってきましたよね。
SNSの共有URLやクーポンコード、コードスニペットの「コピーボタン」など、さまざまな場面で活用されています。

でも、そのコピー操作に「ちゃんと成功したのかどうか」が分からないと、ユーザーはちょっと不安になります。

そこで今回は、コピーに成功した瞬間にアイコンを変化させてフィードバックを返す演出を、JavaScriptと少しのCSSでスマートに実装する方法をご紹介します!

コピー操作に“変化”があるとUXは大きく上がる

ただのボタンをクリックしただけでは、コピーが成功したのかどうか、ユーザーには伝わりません。

そこで有効なのが
  • コピー成功後にテキストが「Copied!」に変わる
  • ボタンの色やアイコンが変化する
  • 一瞬だけチェックマークや完了演出が出る

こうした「フィードバック付きUI」はユーザー体験を向上させるだけでなく、直感的で安心感があるのが特徴です。

実際のコード

See the Pen
Untitled
by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.

スポンサーリンク

まずは基本のHTML構造

ここでは、テキスト+コピーアイコンボタンというシンプルな構造でいきます。

<div class="copy-wrap">
  <input type="text" id="copyText" value="https://example.com" readonly>
  <button id="copyBtn">
    <span class="icon" id="copyIcon">📋</span>
  </button>
</div>

ここでは、コピーアイコンとしてシンプルな絵文字📋を使用していますが、Font AwesomeやSVGに差し替えることも可能です。

CSSで変化前・変化後のスタイルを用意

.copy-wrap {
  display: flex;
  align-items: center;
  gap: 0.5em;
}

button {
  position:relative;
  background: #2196f3;
  color: white;
  border: none;
  padding: 0.5em 1em;
  cursor: pointer;
  border-radius: 4px;
  font-size: 1.2em;
}

button.copied {
  background: #4caf50;
}

button.copied .icon::after {
  content: "✅";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

ここでのポイントは .copied クラス。
コピー成功後にこのクラスを付与し、色やアイコンを変化させることで、「コピーできた!」という視覚的な合図を出せます。

JavaScriptでコピー+フィードバック処理

const copyBtn = document.getElementById('copyBtn');
const copyText = document.getElementById('copyText');
const copyIcon = document.getElementById('copyIcon');

copyBtn.addEventListener('click', () => {
  navigator.clipboard.writeText(copyText.value).then(() => {
    copyBtn.classList.add('copied');
    setTimeout(() => {
      copyBtn.classList.remove('copied');
    }, 2000);
  });
});
  • navigator.clipboard.writeText() でコピーを実行
  • .copied クラスでボタンの状態を変化
  • 2秒後に元に戻すことで「パッと変わって、スッと戻る」自然な演出

 

より凝った演出も簡単にできる!

上記の基本形をベースに、以下のようなアレンジもおすすめです!

  • コピー後のボタンテキストを「コピーしました!」に変更
  • チェックマークをアニメーション付きで出現
  • ボタンそのものを一時的に無効化(連打対策)
  • ボイスオーバーやaria-liveでアクセシビリティ強化

特にアニメーションを加えると、楽しくてちょっと癖になるUXになりますよ!

まとめ:「コピー完了」は“見える化”が鍵

「コピーできました!」という言葉だけじゃ伝わらない。
でも、アイコンやボタンの見た目が変化すれば、一目でわかるんです。

今回のように、JavaScriptでたった数行+ちょっとしたCSSで、“体験として気持ちいいUI”を実現できるのがWebの面白さ。
あなたのサイトやアプリにも、ぜひ「コピー操作にフィードバックを返す演出」、取り入れてみてください!

 

satokotadesignキャンペーン実施中!

浜松市の飲食店限定|ホームページ無料作成サービス
ぶっちゃけ無料相談会!ホームページ制作の悩み話してみませんか?
satokotadesign4周年記念キャンペーン

静岡県浜松市でホームページ制作ならsatokotadesign
静岡県浜松市でホームページ制作ならsatokotadesign

スポンサーリンク
おすすめの記事