生成AI活用

AIでテキストが1文字ずつ打ち込まれるタイピングアニメーションを作る【CSS+JS生成】

更新日:2026-05-10 著者:unigram 読了目安:2分

この記事の要点

AIでタイピングアニメーションを生成する方法。1文字ずつ表示するJS・カーソル点滅CSS・複数フレーズのループまでプロンプト例・コード付きで解説します。

キャッチコピーや自己紹介文が1文字ずつ表示されるタイピングアニメーション。ヒーローセクションに置くだけで印象的なファーストビューになります。

方法①:既存のHTMLからCSS・JSを生成する

AIへのプロンプト例

以下のh1タグのテキストが、1文字ずつタイピングされるように見えるアニメーションを
CSS・JavaScriptで実装してください。
・文字を打ち終わったあとにカーソルが点滅する
・点滅カーソルもCSSで実装

<h1 class="typing-text" data-text="Webの世界へようこそ。"></h1>

生成されたCSS例

.typing-text {
  display: inline-block;
  font-size: 2.5rem;
  font-weight: 800;
  color: #1a1a1a;
  border-right: 3px solid #3e8685;
  white-space: nowrap;
  overflow: hidden;
}
.typing-text.done {
  animation: blink 0.8s step-end infinite;
}
@keyframes blink {
  0%, 100% { border-right-color: #3e8685; }
  50%       { border-right-color: transparent; }
}

生成されたJS例

const el = document.querySelector('.typing-text');
const text = el.dataset.text;
let i = 0;

function type() {
  if (i <= text.length) {
    el.textContent = text.slice(0, i);
    i++;
    setTimeout(type, 80); // 1文字あたりの速さ(ミリ秒)
  } else {
    el.classList.add('done'); // 完了後にカーソル点滅
  }
}
type();

📝 用語メモ

step-end:アニメーションをコマ送り(段階的な変化なし)にするタイミング関数。点滅カーソルをパチパチ切り替えるのに使います。
slice(0, i):文字列の0番目からi番目までを切り出すメソッド。iを1ずつ増やすことで1文字ずつ表示できます。

方法②:HTMLとセットで生成する

AIへのプロンプト例

テキストが1文字ずつタイピングされるヒーローセクションを
HTML・CSS・JavaScriptでまとめて作ってください。
・複数のフレーズを順番に表示→削除を繰り返すループ式
・各フレーズの表示速度・削除速度を指定できる
・カーソルの点滅もつける

ポイント

  • スピードはsetTimeoutの数値(ミリ秒)で調整。小さいほど速くなります
  • 日本語テキストでも問題なく動作しますが、絵文字が含まれる場合は文字数のカウント方法が変わるため「絵文字にも対応して」と伝えましょう

この記事を書いた人

unigram
web、印刷、映像などの制作をしています。@京都、フリーランス18年目。 大学で講師もしています。 自身の備忘録も兼ねて、Web制作・WordPress・SEO・GA4・生成AI活用をテーマに情報発信しています。わかりやすく優しい内容で記事作成を心がけています。