diff options
Diffstat (limited to 'views/index.ejs')
| -rw-r--r-- | views/index.ejs | 51 |
1 files changed, 35 insertions, 16 deletions
diff --git a/views/index.ejs b/views/index.ejs index 2f616ed..7e9054c 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -8,6 +8,8 @@ <script src="/javascripts/jquery-ba-throttle.js"></script> <script src="/javascripts/util.js"></script> <script> + + var cursor = "https://s3.amazonaws.com/luckyplop/52d5f60fde3d8562ad566838e0e09ca52725bb09.gif"; var socket = io.connect(); @@ -19,18 +21,23 @@ _id = null; <% } %> - var start = 0, now = 0; + var start = 0; var users = {}; - function updateWait(data) { + function updateWait(now) { + if (afk) return; if (start == 0) { - start = data.now; + start = now; } - now = data.now; - var howlong = Math.floor( (now - start) / 1000 ); - $("#waiting").html( howlong == 1 ? howlong + " second" : howlong + " seconds" ); + var howlong = Math.floor( (now - start) ) - delay; + $("#waiting").html( toTime( howlong ) ); } - + + (function loop (){ + requestAnimFrame(loop); + updateWait(Date.now()); + })(); + function updateUsers(data) { console.log(data.users); $("#count").html(Object.keys(data.users).length); @@ -60,12 +67,12 @@ } socket.on('count', function(data){ - updateWait(data); + // updateWait(data); updateUsers(data); }); socket.on('update', function(data){ - updateWait(data); + // updateWait(data); }); socket.on('mouse', function(data){ @@ -84,28 +91,39 @@ $("#scores").append($li); } }); - + socket.on('focus', function(data) { if (data.id != _id && _id in users && users[data.id].cursor) { users[data.id].cursor.removeClass('idle'); } }); + socket.on('blur', function(data){ if (data.id != _id && _id in users && users[data.id].cursor) { users[data.id].cursor.addClass('idle'); } }) - + var afk = false, blurred = 0, blurTime = 0, delay = 0; if (_id) { - window.onfocus = function () { - $("#really_waiting").html("FOCUS"); - socket.emit('focus', { id: _id }); - } + window.onblur = function () { $("#really_waiting").html("BLUR"); socket.emit('blur', { id: _id }); + blurred = Date.now(); + afk = true; + } + + window.onfocus = function () { + $("#really_waiting").html("FOCUS"); + socket.emit('focus', { id: _id }); + if (blurred) { + afk = false; + delay = delay + (Date.now() - blurred); + $("#reset").html( "You left the page for " + toTime(delay) + ", counting it against your score.." ); + } } + window.onmousemove = $.throttle(50, function (e) { var y = Math.floor( e.pageY - window.innerHeight / 2 ); var x = Math.floor( e.pageX - window.innerWidth / 2 ); @@ -158,7 +176,8 @@ <a href="/auth/facebook">Login with Facebook</a> <% } %> - <div>You've been waiting for <span id="waiting">0 seconds</span></div> + <div>You've been waiting for <span id="waiting">0 seconds</span><br> + <span id="reset"></span></div> <div><span id="count">0</span> ppl online now!!</div> <div id="really_waiting">FOCUS</div> |
