diff options
Diffstat (limited to 'static/js/bootstrap-386.js')
-rw-r--r-- | static/js/bootstrap-386.js | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/static/js/bootstrap-386.js b/static/js/bootstrap-386.js new file mode 100644 index 0000000..f758634 --- /dev/null +++ b/static/js/bootstrap-386.js @@ -0,0 +1,111 @@ +self._386 = self._386 || {}; + +$(function(){ + var character = { height: 20, width: 12.4 }; + + function scrollLock() { + var last = 0; + $(window).bind('scroll', function(e) { + var func, off = $(window).scrollTop(); + + console.log(off, last, off < last ? "up" : "down"); + + // this determines whether the user is intending to go up or down. + func = off < last ? "floor" : "ceil"; + + // make sure we don't run this from ourselves + if(off % character.height === 0) { + return; + } + last = off; + + window.scrollTo( + 0, + Math[func](off / character.height) * character.height + ); + + }); + } + + function loading() { + + if(_386.fastLoad) { + document.body.style.visibility='visible'; + return; + } + + var + onePass = _386.onePass, + speedFactor = 1 / (_386.speedFactor || 1) * 165000; + wrap = document.createElement('div'), + bar = wrap.appendChild(document.createElement('div')), + + cursor = document.createElement('div'), + // If the user specified that the visibility is hidden, then we + // start at the first pass ... otherwise we just do the + // cursor fly-by + pass = ($(document.body).css('visibility') == 'visible') ? 1 : 0, + height = $(window).height(), + width = $(window).width(), + + // this makes the loading of the screen proportional to the real-estate of the window. + // it helps keep the cool sequence there while not making it waste too much time. + rounds = (height * width / speedFactor), + column = width, row = height - character.height; + + wrap.id = "wrap386"; + bar.id = "bar386"; + cursor.id = "cursor386"; + + cursor.innerHTML = bar.innerHTML = '▄'; + + // only inject the wrap if the pass is 0 + if(pass === 0) { + document.body.appendChild(wrap); + document.body.style.visibility='visible'; + } else { + document.body.appendChild(cursor); + rounds /= 2; + character.height *= 4; + } + + var ival = setInterval(function(){ + for(var m = 0; m < rounds; m++) { + column -= character.width; + + if(column <= 0) { + column = width; + row -= character.height; + } + if(row <= 0) { + pass++; + row = height - character.height; + + if(pass == 2) { + document.body.removeChild(cursor); + clearInterval(ival); + } else { + wrap.parentNode.removeChild(wrap); + if(onePass) { + clearInterval(ival); + } else { + document.body.appendChild(cursor); + rounds /= 2; + character.height *= 4; + } + } + } + + if(pass === 0) { + bar.style.width = column + "px"; + wrap.style.height = row + "px"; + } else { + cursor.style.right = column + "px"; + cursor.style.bottom = row + "px"; + } + } + }, 1); + } + loading(); +}); + |