我正在使用 JQuery 终端示例中的代码在控制台窗口中模拟键入的动画。我可以让动画按预期工作,但在动画过程中,直到动画完成后才会显示特殊的 HTML 字符。例如,在动画运行时,控制台会渲染 ' \
' 而不是 ''
此问题也适用于分配给正在动画的任何 div 的类的样式。直到动画完成后样式才会显示。
下面是用于动画的代码(改编自 JQuery 终端示例页面):
var anim = false;
function typed(finish_typing) {
return function(term, message, delay, finished, classname) {
anim = true;
var prompt = term.get_prompt();
var c = 0;
if (message.length > 0) {
term.set_prompt('');
var interval = setInterval(function() {
term.insert(message[c++]);
if (c == message.length) {
clearInterval(interval);
// execute in next interval
setTimeout(function() {
// swap command with prompt
finish_typing(term, message, prompt, classname);
anim = false
finish && finish();
}, delay);
}
}, delay);
}
};
}
var typed_message = typed(function(term, message, prompt, classname) {
if (typeof classname === "undefined") { classname = "default"; }
term.set_command('');
term.echo(message, {
finalize: function(div) { div.addClass(classname); }});
term.set_prompt(prompt);
});
以及如何调用它的示例:
E.match(/^\s*ping\s*$/i)?
typed_message(N, "PONG", 10, function(){finished = true;}, "pong"):
在这种情况下,应用于分配给 div 输出的“pong”类的样式typed_message
在文本输入完成之前不会显示。
有没有办法在动画运行时显示样式或特殊字符?