はじめに
タイピングアニメーションは、テキストを一文字ずつ表示していく演出で、ヒーローエリアやキャッチコピーを目立たせたいときに便利です。
ここでは Next.js での実装方法を紹介します。
react-typed
今回紹介するのは react-typed を使う方法です。
Typed.js を React 向けにラップしたコンポーネントで、数行で導入できます。
インストール
npm install react-typed実装例
"use client";
import { ReactTyped } from "react-typed";
export default function HeroTyping() {
return (
<h1>
<ReactTyped
strings={[
"Next.jsでタイピングアニメーションを実装",
"react-typedを使えば簡単に導入可能",
"オプションも豊富でカスタマイズ自在"
]}
typeSpeed={40}
backSpeed={20}
backDelay={1000}
loop
showCursor
cursorChar="|"
/>
</h1>
);
}
※スタイルを除いた最小構成なので、適宜スタイリングをして使用してください。
主なオプション
オプション名 | 型 | デフォルト値 | 説明 |
|---|---|---|---|
|
|
| 表示する文字列の配列 |
|
|
| 1文字を入力する速さ(ms) |
|
|
| タイピング開始までの待機時間(ms) |
|
|
| バックスペースの速さ(ms) |
|
|
| バックスペースを始めるまでの待機時間(ms) |
|
|
| 前の文字列と次の文字列が共通の場合、共通部分を残す |
|
|
| 文字列配列をランダム順に表示 |
|
|
| 繰り返し再生するか |
|
|
| 繰り返す回数 |
|
|
| 要素の属性値にテキストを入力する場合に指定 |
|
|
| 入力フィールドにフォーカス時に制御イベントをバインド |
|
|
| HTMLを解釈して表示するか、プレーンテキストとして扱うか |
|
|
| バックスペースの代わりにフェードアウトさせる |
|
|
| フェードアウトに使うCSSクラス名 |
|
|
| フェードアウト開始までの遅延(ms) |
まとめ
- タイピングアニメーションは簡単に導入できる演出
react-typedを使えば数行のコードで実装可能- オプションを組み合わせて自由にカスタマイズできる
タイピングアニメーションを効果的に活用すれば、サイトの第一印象を強くし、メッセージをより印象的に伝えることができますので、ぜひ実装してみてください。