我试图让这个函数在它的循环结束时重复。我尝试将函数分配给变量并在回调中调用变量,但失败了。我尝试将此函数包装在 setInterval
函数中,但仍然无法正常工作。
如何让此函数运行无限循环并重复自身?
$("span.text-change").typed({
strings: ["First sentence.", "Second sentence."],
typeSpeed: 30, // typing speed
backDelay: 500, // pause before backspacing
callback: function () {
// do stuff
}
});
这是插件: Typed JS
最佳答案
Typed.js 作者在这里。我认为这是该死的了不起的人喜欢我的代码足以挖掘它并使更多功能起作用。我确实打算将循环设置为您可以设置的默认功能,但现在这里有一个修复方法。
主要变化
self.stopArray = self.strings.length;
// instead of self.stopArray = self.strings.length-1;
这使得 stopArray 变量允许它在键入最后一个字符串后继续退格。否则,它会在打印完最后一个后停止。
// if (self.arrayPos == self.stopArray && curStrPos == curString.length){
// animation that occurs on the last typed string
// place any finishing code here
// self.options.callback();
// clearTimeout();
// }
以上已被删除。它检查输入的最后一个字符串,并在满足条件时触发一个函数。对于一个循环,我们不希望这样。
else{
self.arrayPos = 0;
self.typewrite(self.string, self.strPos);
}
以上已作为 else 添加到以下 if 语句...
if (self.arrayPos < self.strings.length){
因此,如果数组位置小于数组中字符串的数量,则键入它们。否则,将位置重置为 0,并再次运行原始函数。
继续使用jsfiddle中的代码作为你的typed.js文件,然后在你想要的页面上正常运行。不过,不再有 callback() 了!
让我知道您的想法/问题!
编辑 看起来这里有人在插件中添加了一个循环,但它只是一遍又一遍地循环最后一句话 :p
您必须重置发送到打字函数的数组中的字符串。其他解决方案不会发生这种情况。
关于javascript - 重复JS函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19071466/