JS 实现打字效果

我要冲啦个人网站建设2023-11-30web前端
<html class="is-lg"><head>
    <meta charset="utf-8">
    <title>504错误</title>
    
    <script>"use strict";
        const isMobile = Boolean(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i));
    
        function handleResize() {
            const e = Math.min(1024, window.screen.width);
            document.documentElement.style.fontSize = e / 10 + "px"
        }
    
        document.documentElement.className = isMobile ? "is-xs" : "is-lg", (window.isMobile = isMobile) && (handleResize(), window.addEventListener("resize", handleResize));
        const rayId = function () {
            let e = "";
            let t = 0;
            for (; t < 16; t++) e += Math.floor(16 * Math.random()).toString(16);
            document.write(e)
        }, utcTime = function () {
            document.write((new Date).toLocaleString())
        }, zh = {

        }, en = {

        }, langs = {zh: zh, en: en}, findLang = function (e) {
            return (0 === navigator.language.indexOf("zh-") ? langs.zh : langs.en)[e] || ""
        }, t = function (e) {
            document.write(findLang(e))
        };
        </script>
    <style>
    @import url("https://fonts.googleapis.com/css?family=Share+Tech+Mono|Montserrat:700");
    
    * {
        margin: 0;
        padding: 0;
        border: 0;
        font-size: 100%;
        font: inherit;
        vertical-align: baseline;
        box-sizing: border-box;
        color: inherit;
    }
    
    body {
        background-image: linear-gradient(120deg, #4f0088 0%, #000000 100%);
        height: 100vh;
    }
    
    h1 {
        font-size: 45vw;
        text-align: center;
        position: fixed;
        width: 100vw;
        z-index: 1;
        color: #ffffff26;
        text-shadow: 0 0 50px rgba(0, 0, 0, 0.07);
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%);
        font-family: "Montserrat", monospace;
    }
    
    div {
        background: rgba(0, 0, 0, 0);
        width: 70vw;
        position: relative;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%);
        margin: 0 auto;
        padding: 30px 30px 10px;
        box-shadow: 0 0 150px -20px rgba(0, 0, 0, 0.5);
        z-index: 3;
    }
    
    P {
        font-family: "Share Tech Mono", monospace;
        color: #f5f5f5;
        margin: 0 0 20px;
        font-size: 17px;
        line-height: 1.2;
    }
    
    span {
        color: #f0c674;
    }
    
    i {
        color: #8abeb7;
    }
    
    div a {
        text-decoration: none;
    }
    
    b {
        color: #81a2be;
    }
    
    a.avatar {
        position: fixed;
        bottom: 15px;
        right: -100px;
        -webkit-animation: slide 0.5s 4.5s forwards;
                animation: slide 0.5s 4.5s forwards;
        display: block;
        z-index: 4
    }
    
    a.avatar img {
        border-radius: 100%;
        width: 44px;
        border: 2px solid white;
    }
    
    @-webkit-keyframes slide {
        from {
            right: -100px;
            -webkit-transform: rotate(360deg);
                    transform: rotate(360deg);
            opacity: 0;
        }
        to {
            right: 15px;
            -webkit-transform: rotate(0deg);
                    transform: rotate(0deg);
            opacity: 1;
        }
    }
    
    @keyframes slide {
        from {
            right: -100px;
            -webkit-transform: rotate(360deg);
                    transform: rotate(360deg);
            opacity: 0;
        }
        to {
            right: 15px;
            -webkit-transform: rotate(0deg);
                    transform: rotate(0deg);
            opacity: 1;
        }
    }
    </style>
    </head>
    <body>
    <h1>504</h1>
    <div><p>&gt; <span>错误代码</span>: "<i>HTTP 504禁止</i>"</p>
    <p>&gt; <span>错误描述</span>: "<i>服务器作为网关或代理,但是没有及时从上游服务器收到请求</i>"</p>
    <p>&gt; <span>错误可能由</span>: [<b>由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。</b>...]</p>
    <p>&gt; <span>如果您是此网站的所有者</span>: [请联系您的托管提供商,让他们知道您的web服务器没有完成请求。]</p><p>&gt; <span>祝你今天愉快:-)</span></p>
    <p>    Ray ID:<script>rayId()</script>9cb3cebaeaabf975</p>
    <p>    <script>utcTime()</script>2023/11/30 15:53:49</p>
</div>
    
    
    <script>
    var str = document.getElementsByTagName('div')[0].innerHTML.toString();
    var i = 0;
    document.getElementsByTagName('div')[0].innerHTML = "";
    
    setTimeout(function() {
        var se = setInterval(function() {
            i++;
            document.getElementsByTagName('div')[0].innerHTML = str.slice(0, i) + "|";
            if (i == str.length) {
                clearInterval(se);
                document.getElementsByTagName('div')[0].innerHTML = str;
            }
        }, 10);
    },0);
    </script>
    
    
    
    </body></html>
文章关键词
JS
打字效果