ECサイト構築・リニューアルならクラウド型ECサイト構築ASPサービスサイトへ
資料請求
TOP

CATEGORY

SERVICE

JavaScriptで実現するエフェクト 〜テキストタイピング〜

  • 2015.10.21
  • 2016.05.13
  • 技術
JavaScriptで実現するエフェクト 〜テキストタイピング〜

JavaScriptで実現できるエフェクトをご紹介

こんにちは。開発部まつおかです。

先日、開発部ヤマダの記事「やってみると意外と簡単!?jQueryでアコーディオンメニューを作る方法」でjQueryの紹介があったかと思いますが、今回はJavaScriptを使って、「タイピングしているかのようなエフェクト」をつける方法をご紹介します。

JavaScriptエフェクトの実現

では、早速今回のテーマである「タイピングしているかのようなエフェクト」を実現させていきましょう。

まず、イメージとしては下記のようなエフェクトを実現させていきます。

JavaScriptでできるいろんなエフェクト その1

このように1文字ずつ入力していくような感じで表示するエフェクトにするのが今回の目標です。

実際にプログラムを書いていこう!

では実際にタイピングしているかのようなエフェクトを実現するコードを書いていきましょう。

JavaScriptのソースコード

// 文字列を1文字ずつ遅延描画させる処理
function drawTyping(attribute) {
    "use strict";

    // 遅延描画させたい対象をここで取得します
    var displayTypingList = document.querySelectorAll(attribute);
    // 取得した対象すべてに対して、遅延描画させていきます
    Array.prototype.forEach.call(displayTypingList, function (ele) {
        // 変数定義
        var i = 0;
        var newStr = '';
        var baseStr = ele.innerText.trim();

        // 表示する初期値
        ele.innerText = '_';

        // 1文字ずつ順番に描画していきます
        var timeId = setInterval(function () {
            // 規定の文字列を全て描画しきれていない場合
            if (i < baseStr.length) {
                // 1文字追加して描画します
                newStr += baseStr.charAt(i);
                ele.innerText = newStr + '_';
                i++;
            }
            // 規定の文字列を全て描画し終えた場合
            else {
                // 遅延描画処理を終了します
                clearInterval(timeId);
            }
        }, 100);
    });
}

// ページ表示時に実行される処理
window.addEventListener("load", function (e) {
    drawTyping('.typingDisplay');
});

HTMLに書くHTMLタグ

<p class="typingDisplay">JavaScriptでできるエフェクト その1 まえ</p>
<p>エフェクト対象にしない文字列</p>
<p class="typingDisplay">JavaScriptでできるエフェクト その1 うしろ</p>

ポイントはHTML側でclass属性を指定して、エフェクトをかける対象にするかしないかを設定できるところですね。

JavaScript側の37行目

drawTyping('.typingDisplay')

の箇所でエフェクトをかける対象を選択しているのです。

実際に設定したときのサンプルは下記ページのようになります。

JavaScriptでできるエフェクトその1
(見逃しちゃった!という方は、デモページを再読込してもらえれば再度エフェクトが見れます。)

終わりに

いかがでしたか?

今回はJavaScriptを使って、タイピングのようなエフェクトをつける方法をご紹介させていただきました。

少し仕組み的にも難しい部分もあったかもしれませんが、ほんの少しJavaScriptを追加するだけで色々なエフェクトをつけることができるので、今後も色々とご紹介できればと思います。

まつおか

                   
商品の販売に“夢中”になれる
クラウド型ECサイト構築ASP

ECサイト構築、リニューアルを2000社以上支援してきた知見から
ECの専門家として御社のEC事業成長をサポートします。

  • 導入実績2000社以上


    導入実績

  • 注文単価増加率114%

    導入1年後の
    注文単価
    増加率

  • 売上成長率128%

    導入1年後の
    売上成長率

  • EC支援歴20年


    EC支援歴

         

技術カテゴリの最新記事