コピーボタン(クリップボード API)

インタラクション Easy #js #clipboard #copy #feedback

navigator.clipboard.writeText() でテキストをクリップボードへコピーする実装。コピー成功時の✓表示・フォールバック対応付き。

▶ プレビュー

解説

コピーボタン(クリップボード API)は、インタラクションカテゴリの「コピー」に分類される実装パターンです。CSS と JavaScript の組み合わせで構成され、難易度はシンプルレベル。

クリップボード API でテキストをコピー、成功時にチェックマーク表示。コードブロック・電話番号・住所コピーに。

クリップボード API(navigator.clipboard.writeText())を使ったコピーボタンの基本実装です。コードブロック・電話番号・住所・クーポンコードのコピーに最適。

コピー成功時に「✓ コピーしました」とフィードバック表示することで、操作完了の安心感を与えます。

仕組み

下記コードタブから HTML / CSS / JS をそれぞれ確認・コピーできます。プレビュー領域では実際の動作をその場で確認可能です。

JavaScript 部分は vanilla(プレーン)JS で書かれており、jQuery / React / Vue いずれの環境にも持ち込めます。

注意点 / カスタマイズ時のポイント

HTTPS 環境でのみ動作します(localhost を除く)。HTTP サイトでは document.execCommand('copy') のレガシー実装が必要です。

iOS Safari の古いバージョンでは navigator.clipboard が undefined になることがあるので、フォールバック分岐推奨。

使用例・適したシーン

  • コードブロック
  • 電話番号・住所コピー
  • クーポンコードの配布

よくある質問

HTTP サイトでも動かしたい
document.execCommand('copy') を使ったレガシー実装にフォールバックする必要があります。ただし非推奨 API で将来削除される可能性があります。
成功通知を Toast 風にしたい
成功時に固定位置の Toast を表示する実装に変更できます。Toast スニペット(ui-toast 系)と組み合わせると統一感が出ます。
このスニペットは商用利用できますか?
はい。moatway がオリジナルで制作したスニペットは商用・個人問わず自由にご利用いただけます。クレジット表記も不要です。
そのまま貼り付ければ動きますか?
はい。HTML / CSS / JS タブのコードをそれぞれ自分のファイルにコピーして貼り付ければ動きます。クラス名が他の CSS と衝突しないよう、必要に応じてリネームしてください。
ブラウザ対応は?
最新 2 世代の Chrome / Safari / Firefox / Edge で動作確認しています。Internet Explorer はサポート対象外です。
jQuery でも書けますか?
この実装は vanilla JavaScript で書いています。jQuery が必要であれば document.querySelector$() に置き換える程度で動作しますが、近年は jQuery を使わない方が軽量で推奨されます。
追加日:2026-05-11
← すべてのスニペットへ戻る