typewriterjs icon indicating copy to clipboard operation
typewriterjs copied to clipboard

stop() doesn't work as expected (or not at all)

Open HunterAhlquist opened this issue 2 years ago • 1 comments

Hi, I'm trying to use stop() to interrupt the typewriter effect so it can move immediately into deleteAll() which I put after stop(). However, either stop() doesn't work as expected or it's not working at all because typewriter continues to type out the rest of the text then moves into deleteAll() as if stop() was never even there. Here's an example:

let typeWriter = new Typewriter(tabContent, {
    loop: false,
    delay: 25,
    deleteSpeed: 15,
    cursor: '',
});

function interrupt() {
    typeWriter.stop();
    typeWriter.deleteAll(15);
    typeWriter.typeString("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
}

typeWriter.typeString("123456789123456789123456789123456789123456789123456789123456789123456789123456789");
setTimeout(function() { interrupt(); }, 1000);

Is this unintended, user-error, or is the stop() explanation missing something?

HunterAhlquist avatar Dec 27 '22 22:12 HunterAhlquist

You need to modify the state.eventQueue after you call stop and empty the array of the queue. That did the trick for me.

You might need to manually override the TS types that coem with the package, they don't include the state pro in the TypewriterClass

Jeandcc avatar Mar 14 '23 01:03 Jeandcc