Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TypingText = function(element, interval, cursor, finishedCallback) {
- if((typeof document.getElementById == "undefined") || (typeof
- element.innerHTML == "undefined")) {
- this.running = true;
- return;
- }
- this.element = element;
- this.finishedCallback = (finishedCallback ? finishedCallback : function() {
- return; });
- this.interval = (typeof interval == "undefined" ? 100 : interval);
- this.origText = this.element.innerHTML;
- this.unparsedOrigText = this.origText;
- this.cursor = (cursor ? cursor : "");
- this.currentText = "";
- this.currentChar = 0;
- this.element.typingText = this;
- if(this.element.id == "") this.element.id = "typingtext" +
- TypingText.currentIndex++;
- TypingText.all.push(this);
- this.running = false;
- this.inTag = false;
- this.tagBuffer = "";
- this.inHTMLEntity = false;
- this.HTMLEntityBuffer = "";
- }
- TypingText.all = new Array();
- TypingText.currentIndex = 0;
- TypingText.runAll = function() {
- for(var i = 0; i < TypingText.all.length; i++) TypingText.all[i].run();
- }
- TypingText.prototype.run = function() {
- if(this.running) return;
- if(typeof this.origText == "undefined") {
- setTimeout("document.getElementById('" + this.element.id + "').typingText.run()", this.interval);
- return;
- }
- if(this.currentText == "") this.element.innerHTML = "";
- if(this.currentChar < this.origText.length) {
- if(this.origText.charAt(this.currentChar) == "<" && !this.inTag) {
- this.tagBuffer = "<";
- this.inTag = true;
- this.currentChar++;
- this.run();
- return;
- } else if(this.origText.charAt(this.currentChar) == ">" && this.inTag) {
- this.tagBuffer += ">";
- this.inTag = false;
- this.currentText += this.tagBuffer;
- this.currentChar++;
- this.run();
- return;
- } else if(this.inTag) {
- this.tagBuffer += this.origText.charAt(this.currentChar);
- this.currentChar++;
- this.run();
- return;
- } else if(this.origText.charAt(this.currentChar) == "&" && !
- this.inHTMLEntity) {
- this.HTMLEntityBuffer = "&";
- this.inHTMLEntity = true;
- this.currentChar++;
- this.run();
- return;
- } else if(this.origText.charAt(this.currentChar) == ";" &&
- this.inHTMLEntity) {
- this.HTMLEntityBuffer += ";";
- this.inHTMLEntity = false;
- this.currentText += this.HTMLEntityBuffer;
- this.currentChar++;
- this.run();
- return;
- } else if(this.inHTMLEntity) {
- this.HTMLEntityBuffer += this.origText.charAt(this.currentChar);
- this.currentChar++;
- this.run();
- return;
- } else {
- this.currentText += this.origText.charAt(this.currentChar);
- }
- this.element.innerHTML = this.currentText;
- this.element.innerHTML += (this.currentChar < this.origText.length - 1 ? (typeof this.cursor == "function" ? this.cursor(this.currentText) : this.cursor) : "");
- this.currentChar++;
- setTimeout("document.getElementById('" + this.element.id + "').typingText.run()", this.interval);
- } else {
- this.currentText = "";
- this.currentChar = 0;
- this.running = false;
- this.finishedCallback();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement