Advertisement
Guest User

Typewriter Script

a guest
Sep 9th, 2018
764
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* typewriter */
  2. !function() {
  3.     postrender.typewriter = function (b) {
  4.         if (this.tags) {
  5.             var r = new RegExp("t8n.typewriter.([0-9]+)(?:[^0-9]|$)","g");
  6.             var t = r.exec(this.tags.toString());
  7.             if (t) {
  8.                 typeout(b, t[1]+0);
  9.             }
  10.         }
  11.         return b;
  12.     };
  13.     var typeout = function(c,t) {
  14.         var Furl = function(current) {
  15.             this.n = current;
  16.             this.out = false;
  17.             this.data = current.nodeValue;
  18.             current.nodeValue = "";
  19.             this.kids = [];
  20.             var cn = current.childNodes;
  21.             if (current.style && current.style.display=="none") {
  22.                 return;
  23.             }
  24.             while (cn.length>0) {
  25.                 var f = new Furl(cn[0]);
  26.                 current.removeChild(cn[0]);
  27.                 f.out = true;this.kids.push(f);
  28.             }
  29.         };
  30.         var nodes = new Furl(c);
  31.         var unfurl = function(furled,d) {
  32.             var n = furled.n;
  33.             if (furled.out) {
  34.                 d.appendChild(n);
  35.                 furled.out = false;
  36.             }
  37.             if (furled.data) {
  38.                 n.nodeValue += furled.data[0];
  39.                 furled.data = furled.data.slice(1);
  40.                 return true;
  41.             }
  42.             for (var j=0; j<furled.kids.length; j++) {
  43.                 var ret = unfurl(furled.kids[j],n);
  44.                 if (ret) {
  45.                     return true;
  46.                 }
  47.             }
  48.             return false;
  49.         };
  50.         var title = passage();
  51.         var intr = setInterval (
  52.             function() {
  53.                 if (passage() == title && unfurl(nodes,null)) {
  54.                     return;
  55.                 }
  56.                 clearInterval(intr);
  57.             }
  58.         ,t);
  59.     };
  60. }();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement