【发布时间】:2019-10-27 15:03:51
【问题描述】:
我一直在尝试创建打字效果,我发现这段代码 sn-p 可以完美运行。唯一的问题是我需要在它开始运行之前设置 6 秒的延迟,但我无法做到。
情况是我有很多幻灯片,而这段文字在第一张幻灯片上。所以,基本上我需要它在播放第一张幻灯片后延迟 6 秒开始。
我尝试为函数命名并在其上设置 Timeout 以及在整个函数上设置 Timeout,但它们都不起作用。我已经测试了很多其他我认为可行的方法,但没有一个可行。我仍然对 jQuery 没有信心,这可能是我想不出合适的解决方案的原因。
$.fn.typewriter = function () {
this.each(function () {
var c = $(this),
b = c.html(),
a = 0,
d = 0;
c.html("");
var e = function () {
if ("<" == b.substring(a, a + 1)) {
var f = new RegExp(/<span class="instant"/),
g = new RegExp(/<span class="clear"/);
if (b.substring(a, b.length).match(f)) a += b.substring(a, b.length).indexOf("</span>") + 7;
else if (b.substring(a, b.length).match(g)) d = a, a += b.substring(a, b.length).indexOf("</span>") + 7;
else
for (;
">" != b.substring(a, a + 1);) a++
}
c.html(b.substring(d, a++) + (a & 1 ? "_" : ""));
a >= b.length || setTimeout(e, 50 + 50 *
Math.random())
};
e()
});
return this;
};
$(".terminal").typewriter();
【问题讨论】:
-
延迟 6 秒从什么开始?页面何时加载?当一个键被按下?更具体。
-
@MaxVoisard 我编辑了问题并添加了更多详细信息。
标签: javascript jquery settimeout