-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.js
More file actions
60 lines (49 loc) · 1.78 KB
/
Copy pathindex.js
File metadata and controls
60 lines (49 loc) · 1.78 KB
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
(function() {
"use strict";
const SATURATION = "95%";
const LUMINANCE = "34%";
// ユーザー追加処理
var addUser = function() {
var input = document.getElementById("add-user-input");
var username = input.value;
if (username == "") { return; }
if (0 < document.getElementsByClassName("send-hi-button").filter(
function(button) { return username === button.dataset.username; }).length) {
return;
}
var hue = Math.round(Math.random() * 359);
var button = document.createElement("li");
button.classList.add("send-hi-button");
button.style.backgroundColor = 'hsl(${hue}, ${SATURATION}, ${LUMINANCE})';
button.innerHTML = button.dataset.username = username;
button.addEventListener("click", sendHi);
var addUserRow = document.getElementById("add-user-row");
addUserRow.insertBefore(button, addUserRow);
input.value = "";
};
// Hi! 送信処理
var sendHi = function(e) {
var buttons = document.getElementsByClassName("send-hi-button");
var selectedButton = e.target;
var sortedButtons = new Array(buttons.length);
buttons.forEach(function(button, i) {
if (button === selectedButton) {
sortedButtons[0] = button;
flag = true;
} else {
sortedButtons[flag ? i + 1 : i] = button;
}
});
var addUserRow = document.getElementById("add-user-row");
for (let button in sortedButtons) {
addUserRow.parentNode.insertBefore(button, addUserRow);
}
selectedButton.innerHTML = "Send Hi!";
setTimeout(function() {
selectedButton.innerHTML = selectedButton.dataset.username;
}, 1000);
};
document.addEventListener("DOMContentLoaded", function() {
document.getElementById("add-user-button").addEventListener("click", addUser);
});
})();