Typewriter JS的.typeString方法在键盘事件监听中无法正常运行问题
问题根因
- 你的猜测不成立,事件回调内console能正常执行,说明
typewriter变量可以被正常访问,不存在作用域访问问题。 - 问题出在Typewriter JS的任务队列运行机制:页面加载阶段添加的打字任务执行完成后,队列会自动进入停止状态。你在keyup事件内调用
typeString只是把新任务追加到了队列末尾,不会自动唤醒已经停止的队列,因此不会执行新的打字任务。
修复方案
在事件内调用typeString追加内容后,手动调用start()方法重启队列即可触发新任务执行,也可根据需求搭配pauseFor()等方法控制打字节奏。
修复后的完整JS代码
var app = document.getElementById('app'); var typewriter = new Typewriter(app, {}); document.addEventListener("keyup", function(event) { if (event.key=="Enter") { // 追加打字内容后重启队列 typewriter.typeString('this now works').start(); console.log("typing triggered"); } }); typewriter.start(); typewriter.typeString('this works');
内容的提问来源于stack exchange,提问作者Eliaz
相关产品推荐
相关产品推荐

