Write text

by anzeo

HTML

<span data-bind="appear: word"></span>

JavaScript

function addLetter(element, word, letterIndex){
    if(letterIndex < word.length) {
        element.innerHTML = element.innerHTML + word[letterIndex];
        setTimeout(function(){
            addLetter(element, word, ++letterIndex);
        }, 100);
    } else {
        element.innerHTML = "";
        addLetter(element, word, 0);
    }
}
ko.bindingHandlers.appear = {
    update: function(element, valueAccessor){
        var word = ko.utils.unwrapObservable(valueAccessor());
        addLetter(element, word, 0);
       
    }
}

var vm = {
    word: 'Hello World!'
}

ko.applyBindings(vm);