Using javascript/typescript code, I'm trying to display a string (letter by letter) which works perfectly fine. But after displaying a string completely, it hides the element so bottom element takes that space which doesn't look good. I want that space to be there forever whether it contains string or not.
You can play with it here : https://plnkr.co/edit/mbZDrlOSI1vnjIrSMcNq?p=preview
@Component({
selector: 'my-app',
template: `
<div>
<div #text1></div>
<div>Do you really think?</div>
</div>
`,
})
export class App {
@ViewChild('text1') text1:ElementRef;
ngAfterViewInit()
{
this.printLetterByLetter(this.text1, "Angular2 is awesome", 200)
}
printLetterByLetter(destination:ElementRef, message:string, speed:number){
let i = 0;
destination.nativeElement.innerHTML = "";
let interval = setInterval(()=>{
console.log(i);
destination.nativeElement.innerHTML += message.charAt(i);
i++;
if (i > message.length){
this.printLetterByLetter(this.text1, "Angular2 is awesome", 200)
clearInterval(interval);
}
}, speed);
}
}