【发布时间】:2016-03-13 08:37:37
【问题描述】:
所以我想制作一个 jQuery 应用程序,其中文本在屏幕上被动画化,看起来好像有人在输入什么东西。我以最简单的形式实现了这一点。
HTML
<p></p>
jQuery
$(document).ready(function() {
var p = $('p');
p.text('');
window.setInterval(function(){
inc(p);
}, 100);
});
var i = 0;
function inc(p)
{
var text = "Hey... This is just a test";
p.append(text.charAt(i));
i++;
}
我想知道的是,在“嘿……”之后我怎么可能告诉函数停止 2 秒?或者我想要的任何数量。
我有一个想法,但它非常低效且“蹩脚”,那就是添加尽可能多的空格以在 2 秒内不打印任何内容,然后将字符串替换为空格之前的所有内容并继续追加。
这太糟糕了,我想要一种更好的方法。任何人都可以给我任何建议吗? setInterval 是正确的函数还是我应该使用 setTimeout?
Here's 我的代码的小提琴。
感谢任何帮助或建议,非常感谢。
【问题讨论】:
-
我没听懂,你想在 2 秒后重新加载你的函数吗?
-
所以,假设我有一个字符串“嘿...这只是一个测试”,我希望能够做一些类似的事情,“”嘿... [暂停:2s] 这个只是一个测试”,然后我可以在附加任何内容之前运行一个 if 语句,并使用正则表达式检查要暂停多少秒,然后在该时间过去之后,我继续附加 @shayanypn
标签: jquery animation settimeout