【javaScript】該当要素内のテキストをすべてspanタグで囲う

制作技術

Webページに命を吹き込む – 文字の魔法

Web開発において、テキストは情報伝達の基本的な手段です。

しかし、ただのテキストよりも、それぞれの文字に動きやスタイルを加えることで、ユーザーの注意を引きつけ、より魅力的なページを作ることができます。

この記事では、シンプルなJavaScriptの関数を用いて、テキストの各文字を<span>タグで囲む方法を紹介します。

この小さなトリックで、テキストアニメーションやスタイリングの可能性がぐんと広がります。

必要知識: JavaScriptの構文と式の基礎

このブログで取り扱う関数は、コピペだけで使用可能ですが、以下のJavaScriptの基本的な概念で構成されているので、わからない箇所は時間があるときにキャッチアップした方が今後のためになります!

  1. 変数と定数 – データを格納するために使用されるletconstによって宣言される名前付きのストレージです。
  2. DOMの選択 – 特定のセレクタに一致するドキュメント内の要素のリストを返します。
  3. 配列とArray.fromメソッド – 配列風オブジェクトや反復可能オブジェクトから新しい配列インスタンスを作成します。
  4. mapメソッド – 配列の各要素に対して関数を実行し、結果からなる新しい配列を作成します。
  5. テンプレートリテラル – バッククォートで囲まれた文字列で、変数や式を動的に挿入できます。
  6. forEachメソッド – 配列の各要素に対して指定した処理を実行します。

これらの基礎をマスターすることで、JavaScriptを使ったWebページの動的な操作が可能になります。

コードの内容: 文字を魅力的にする関数

const spanElmFn = (elm) => {
  const elements = document.querySelectorAll(`.${elm}`);

  // 各要素に対する処理
  elements.forEach(element => {
    // 要素のテキストを取得
    const text = element.textContent;
    // テキストを1文字ずつ分割し、各文字をで囲む
    const wrappedText = Array.from(text).map(char => `${char}`).join('');
    // 元の要素の内容を更新
    element.innerHTML = wrappedText;
  });
}

spanElmFn("該当要素のクラス名、もしくはデータ属性と値");

提供したJavaScriptの関数spanElmFnは、指定したクラス名を持つHTML要素内のテキストを、文字ごとに<span>タグで囲むためのものです。

この関数は、まず指定されたクラス名を持つ要素をすべて選択します。

次に、それぞれの要素内のテキストを取得し、そのテキストを一文字ずつ分割して、各文字を<span>で囲んだ新しいHTML文字列を生成します。最後に、この新しいHTML文字列で元の要素の内容を更新します。

これにより、CSSアニメーションやスタイリングを各文字に適用することが可能になります。

まとめ: 小さな変更で大きな違い

この記事では、テキストの各文字を<span>タグで囲むことで、文字に動きや個性を加える方法を紹介しました。

この簡単なJavaScript関数を使うことで、Webページのテキストに対する新しいアプローチを試みることができます。

アニメーション、色の変更、テキストのサイズやフォントの変更など、創造性に限界はありません。

この小さな工夫が、あなたのWebページに新しい息吹をもたらすかもしれません。

コメント