JavaScriptで文字列配列をシャッフル表示…簡易実装してみた

    zlib⇒ファイル解凍ツール

    ファイル⇒zlib圧縮ツール

    JavaScriptでこんなことしたい。

    • 文字列などの配列がある
    • それをシャッフル表示したい
    • ルーレットみたいな感じで

    ちょうど以下動画のような動きです。

    文字列をこの動画のようにシャッフル表示する実装方法の解説

    意外と簡単に実現できたので、
    文字列配列のシャッフル表示を紹介します。

    1.ここで用意したHTMLとCSS

    ここでは次のHTML構成を用意しました。

    ▼ こんなHTML構成

    ▼ 装飾用のCSS

    ▼ こんなレイアウト

    今日のラッキーカラーをランダム表示するレイアウトの例

    例として上記構成にしました。

    動作はシンプルで #start スタートボタンを押したら #answer に文字列がランダムにシャッフル表示され、任意時間後にラッキーカラーが表示される感じです。

    ちなみにanimationプロパティは以下参照

    https://developer.mozilla.org/ja/docs/Web/CSS/animation

    ここまでで下準備ができました。

    2.シャッフル表示するコードを追加

    ということで肝心のコードについて。

    簡易的なシャッフル表示はこうなります。

    ▼ シャッフル表示のJavaScriptコード例

    何をしてるかはコメントを参照

    やってることは setInterval()  を使って50ミリ秒ごとに文字列配列からランダム取り出し ⇒ 要素に表示 ⇒ 3000ミリ秒後にシャッフル停止 という流れです。(参考 : https://developer.mozilla.org/ja/docs/Web/API/setInterval

    あとランダムな整数の生成は以下ページで解説しました。

    以下のようなシャッフル表示になります。

    この動画のようにラッキーカラーを文字列配列からシャッフルして表示する機能を作ってみた

    シャッフル間隔などは調整してください。

    3.緩急をつけてシャッフルしてみる

    ここからは応用編です。

    次のように緩急つけてみます。

    • 最初は高速でシャッフル
    • 徐々にシャッフル速度を落とす
    • 最後に選ばれた文字列を表示

    先ほどのコードを少し改変すれば可能です。

    ▼ このようにコードを改変

    何をしてるかは(以下略

    先ほどと違うのは setTimeout()  の中で閾値を超えるまで、再帰的にshuffle関数を呼び出してることです。もちろん再帰を使わなくても実装可能です。

    以下動画のようなシャッフル表示になります。

    コードを工夫すれば緩急をつけてシャッフル表示も可能

    シャッフル方法は各自で工夫してください。

    以上、文字列配列のシャッフル表示でした。ではまた

    Shareこの記事をシェアしよう!

    Commentsこの記事についたコメント

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    CAPTCHA


    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください