LoginSignup
0
0

chatGPTふうな出力.

Last updated at Posted at 2024-05-12

image.png

chatGPTふうな出力.
実際に出力したらこんな感じになります(YOUTUBE動画参照).
※リアルタイムなイベント処理(input)には対応していません.

demo
https://zip358.com/tool/demo89/

moji-v1.0.0.js
let moji = {
    'fn':function(txt='#txt',view='#view'){
        document.querySelector(view).innerText = '';     
        (async function viewText(view,txt) {
            document.querySelector(view).innerText = '';           
            for (const element of txt) {
                await pause(50);
                document.querySelector(view).innerText += '';
                await pause(50);
                document.querySelector(view).innerText = document.querySelector(view).innerText.slice(0, -1) + element;
            }
        })(view,document.querySelector(txt).value);
    }
};

function pause(milliseconds) {
    return new Promise(resolve => setTimeout(resolve, milliseconds));
}
index.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #view {
            background-color: #000;
            color: #eee;
            width: 350px;
            overflow-wrap: break-word;
        }
    </style>
</head>

<body>
    <textarea id='txt'>吾輩は猫である名前はまだないどこで生れたか頓とんと見当がつかぬ何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している吾輩はここで始めて人間というものを見た</textarea>
    <button type="button" id='btn'>view</button>
    <div id="view"></div>
    <script src='moji-v1.0.0.js?t=<?= time() ?>'></script>
    <script>
        document.querySelector('#btn').addEventListener('click', function() {
            moji.fn('#txt', '#view');
        });
    </script>
</body>
</html>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0