javascript - 如何逐字符显示文本框中的文本?

标签 javascript html css

我正在处理 CSS 动画类型的东西,需要在 HTML 的文本框中显示文本,就好像有人正在输入但实际上没有人输入任何文本一样。到目前为止我有这个:

<html>
    <head><style>
    input, input:focus {
        border:none;
    }
    input {
        animation: blink-empty 1s infinite;
        border-left: transparent solid 1px;
        margin:5px 
    }
    @keyframes blink-empty {
        50% {border-left: 1px solid #333;}
    }
    </style></head>
    <body>
        <input type="text" value="" id="Box1"/>
    <script type="text/javascript">
    window.onload = function() {
        document.getElementById("Box1").focus();
        document.getElementById("Box1").value= ("Text in the textbox");
    };
    </script>
    </body>
</html>

我希望逐个字符地显示“文本框中的文本”值,就好像用户正在输入一样,每个字符之间有一些时间。所以我的问题是有人知道在 js 中进行计时和附加列表的方法吗?谢谢!

最佳答案

您可以使用 setTimeout并排队将字符写入文本框。

window.onload = function() {
    var box = document.getElementById("Box1"),
        text = "Text in the textbox";

    document.getElementById("Box1").focus();

    for (var i = 0, l = text.length; i < l; i++) {
        setTimeout(function(i) {
            box.value = text.substring(0, i + 1);
        }.bind(this, i), i * 200);
    }
};

JSFiddle

关于javascript - 如何逐字符显示文本框中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24870804/

相关文章:

javascript - 当 url 包含空格时, Angular ng 样式背景图像

javascript - 如何在jquery中反转自动触发 'click'操作

javascript - Node 简单对象工厂模块

javascript - 根据屏幕分辨率实现元素的自动调整大小/定位

javascript - 在 TypeScript 中,定义可以返回 Promise<T> 或 Promise<T[]> 的函数的最佳方法是什么?

javascript - 带有下划线滑动链接的滚动页面菜单处于事件状态

javascript - 添加具有唯一 id 的动态输入字段以进行计数

javascript - 向子元素输入值为空的父元素添加类?

css - 元素不服从我的 css(左/ float )

javascript - onFinish 执行时加载 jQuery 事件