-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest-matrix.html
108 lines (97 loc) · 4.4 KB
/
test-matrix.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="UTF-8">
<title>Game</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script type="text/javascript" src="js/bootstrap-slider.js"></script>
<script type="text/javascript" src="js/constants.js"></script>
<script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script>
<link href="css/bootstrap.min.css" rel="stylesheet">
<link type="text/css" href="css/bootstrap-slider.min.css" rel="stylesheet"></link>
<link type="text/css" href="css/trust-game.css" rel="stylesheet"></link>
</head>
<body>
<p>Click on the intersection if two people were friends</p>
<div class="">
<table id="matrix" class="table table-bordered">
<thead id="matrix-head"></thead>
<tbody id="matrix-body"></tbody>
</table>
</div>
<script type="text/javascript" src="js/globals.js"></script>
<script type="text/javascript">
function append_row(contents, isHead) {
// contents is an array containing jquery contents for each cell
// assuming length of contents % 4 === 0
var oneRow = $('<tr>');
for (var i = 0; i < players.length && i < contents.length; ++i) {
oneRow.append($( (isHead || i === 0) ? '<th>' : '<td>').append(contents[i]));
}
if (isHead) {
$('#matrix-head').append(oneRow);
} else {
$('#matrix-body').append(oneRow);
}
}
function get_player_img_div(index) {
var playerImgDivCropper = $('<div>', {
class: 'image-cropper'
});
playerImgDivCropper.append($('<p>', {
class: 'img-text',
text: players[index][1]
}));
playerImgDivCropper.append($('<img>', {
src: players[index][0]
}));
var playerImgDiv = $('<div>', {
class: 'small-img-div'
}).append(playerImgDivCropper);
return playerImgDiv;
}
var firstRow = [''];
for (var i = players.length - 1; i >= 0; --i) {
firstRow.push(get_player_img_div(i));
}
append_row(firstRow, true);
// second to last rows
for (var i = 0; i < players.length - 1; ++i) { // for each row
var row = [get_player_img_div(i)];
for (var j = 0; j < players.length - i - 1; ++j) {
row.push('')
}
append_row(row, false);
}
$('#matrix').stickyTableHeaders();
$('#matrix td').click(function() {
if ($(this).hasClass('friends-selected')) {
$(this).removeClass('friends-selected');
$(this).text('');
} else {
$(this).addClass('friends-selected');
$(this).text('Friends');
}
});
$('#matrix td').mouseover(function() {
var cellRow = $(this).closest('tr').index();
var cellCol = $(this).index();
// change this cell
$(this).addClass('friends-hover');
// change table header
$($('#matrix thead th')[cellCol]).addClass('friends-hover');
$($('#matrix tbody tr th')[cellRow]).addClass('friends-hover');
});
$('#matrix td').mouseout(function() {
var cellRow = $(this).closest('tr').index();
var cellCol = $(this).index();
// change this cell
$(this).removeClass('friends-hover');
// change table header
$($('#matrix thead th')[cellCol]).removeClass('friends-hover');
$($('#matrix tbody tr th')[cellRow]).removeClass('friends-hover');
});
</script>
</body>
</html>