Blame view

public/main.js 2.05 KB
5186f0a6   Geoffrey PREUD'HOMME   Best score
1
2
3
4
5
6
7
8
9
  $.fn.extend({
      animateCss: function (animationName) {
          var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';
          $(this).addClass('animated ' + animationName).one(animationEnd, function() {
              $(this).removeClass('animated ' + animationName);
          });
      }
  });
  
ea5a9738   Geoffrey PREUD'HOMME   Scoreboard : coté...
10
11
12
  $(function() {
      var socket = io();
      var scores = [];
e704c732   Geoffrey PREUD'HOMME   Avancement web
13
      var list = $('#scores ol');
ea5a9738   Geoffrey PREUD'HOMME   Scoreboard : coté...
14
15
  
      socket.emit('getScores');
e704c732   Geoffrey PREUD'HOMME   Avancement web
16
  
ea5a9738   Geoffrey PREUD'HOMME   Scoreboard : coté...
17
18
19
20
21
      socket.on('scores', function(newScores) {
          scores = newScores;
          redrawScores();
      });
  
e704c732   Geoffrey PREUD'HOMME   Avancement web
22
23
24
25
26
27
28
29
      socket.on('newScore', function addScore(obj) {
          scores.push(obj);
          redrawScores();
      });
  
      socket.on('msg', function(msg) {
          $('#sub').text(msg);
      });
ea5a9738   Geoffrey PREUD'HOMME   Scoreboard : coté...
30
  
5186f0a6   Geoffrey PREUD'HOMME   Best score
31
32
      var oldScore = 0;
  
ea5a9738   Geoffrey PREUD'HOMME   Scoreboard : coté...
33
      function redrawScores() {
e704c732   Geoffrey PREUD'HOMME   Avancement web
34
35
          var sortable = [];
          scores.sort(function(b, a) {return a.score - b.score})
ba814e44   Geoffrey PREUD'HOMME   GUI revue
36
          var list = $('#scores ol');
ea5a9738   Geoffrey PREUD'HOMME   Scoreboard : coté...
37
          list.empty();
e704c732   Geoffrey PREUD'HOMME   Avancement web
38
          for (i in scores) {
ba814e44   Geoffrey PREUD'HOMME   GUI revue
39
40
41
42
              if (i < 15) {
                  var obj = scores[i];
                  list.append($('<li>').text(obj.score + ' - ' + obj.name));
              }
ea5a9738   Geoffrey PREUD'HOMME   Scoreboard : coté...
43
          }
5186f0a6   Geoffrey PREUD'HOMME   Best score
44
45
46
47
48
49
50
51
52
          if (scores[0]) {
              $('#bestBlock').css('display', 'block');
              $('#bestBlock .score').text(scores[0].score);
              $('#bestBlock .name').text(scores[0].name);
              if (scores[0].score > oldScore) {
                  $('#bestBlock').animateCss('rotateIn');
                  oldScore = scores[0].score;
              }
          }
ea5a9738   Geoffrey PREUD'HOMME   Scoreboard : coté...
53
54
      }
  
e704c732   Geoffrey PREUD'HOMME   Avancement web
55
56
57
      function rainbowColor(el) {
          var hue = Math.floor(Math.random()*360);
          el.css('filter', 'hue-rotate('+hue+'deg)');
ea5a9738   Geoffrey PREUD'HOMME   Scoreboard : coté...
58
59
      }
  
e704c732   Geoffrey PREUD'HOMME   Avancement web
60
61
62
63
64
65
66
67
68
69
70
71
72
      var logo = $('#logo');
  
      setInterval(function rainbowLogo() {
          rainbowColor(logo);
      }, 500);
  
      (function anim() {
          var now = Date.now()/1000;
  
          // Logo
          var scale = (Math.sin(now*5) + 1)/5 + 0.7;
          var rot = Math.sin(now*10)/10;
          logo.css('transform', 'rotate(' + rot + 'rad) scale(' + scale + ')');
5186f0a6   Geoffrey PREUD'HOMME   Best score
73
          rainbowColor($('#bestBlock .score'));
e704c732   Geoffrey PREUD'HOMME   Avancement web
74
75
76
77
78
          requestAnimationFrame(anim);
  
      })();
  
  
ea5a9738   Geoffrey PREUD'HOMME   Scoreboard : coté...
79
  });