← 動的パーツギャラリーへ戻る

パーツ番号 02-09-03 ・ JavaScript使用

文字化けデコードテキスト

ランダムな記号から徐々に正しい文字へ収束し、しばらくすると再び崩れて繰り返します。WordPressの解析・セキュリティ・エンジニア紹介ページのローディング表現に最適です。

js

プレビュー

ソースコード

HTML

<div class="d02-09-03-txt" data-final="解析完了"></div>

CSS

.d02-09-03{background:#0a0a0a}
        .d02-09-03-txt{font-family:ui-monospace,Menlo,monospace;font-size:32px;font-weight:800;color:#39ff14;letter-spacing:3px;text-shadow:0 0 8px rgba(57,255,20,.6)}

JavaScript

(function(){
        var el=document.querySelector('#item-02-09-03 .d02-09-03-txt');
        var final=el.getAttribute('data-final');
        var chars='アイウエオ!<>-_\\/[]{}=+*^?#0123456789';
        var reduce=window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches;
        if(reduce){el.textContent=final;return;}
        function run(){
          var frame=0,resolved=0;
          var timer=setInterval(function(){
            var out='';
            for(var i=0;i<final.length;i++){
              if(i<resolved){out+=final[i];}
              else{out+=chars[Math.floor(Math.random()*chars.length)];}
            }
            el.textContent=out;
            frame++;
            if(frame%3===0)resolved++;
            if(resolved>final.length){clearInterval(timer);el.textContent=final;setTimeout(run,2200);}
          },45);
        }
        run();
      })();

クラス名 .d02-09-03 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。