-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
93 lines (79 loc) · 2.45 KB
/
script.js
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
let color1 = document.querySelector(".color1");
let color2 = document.querySelector(".color2");
let btnChange = document.querySelector("#change");
let btnSave = document.querySelector("#save");
let btnClear = document.querySelector("#clear");
let cards = document.querySelector("#cards");
function setCss() {
return "linear-gradient(to right, "
+ color1.value
+ ", "
+ color2.value
+ ")";
}
function setGradient() {
let label1 = color1.parentNode;
let label2 = color2.parentNode;
let body = document.querySelector("#gradient");
let css = document.querySelector("p");
//
label1.style.background = color1.value;
label2.style.background = color2.value;
body.style.background = setCss();
css.textContent = body.style.background;
}
function generateRandomColor() {
color1.value = "#" + Math.floor(Math.random()*16777215).toString(16);
color2.value = "#" + Math.floor(Math.random()*16777215).toString(16);
setGradient();
sessionStorage.clear();
}
function createColorCard() {
let card = document.createElement("div");
let copyBtn = document.createElement("button");
let delBtn = document.createElement("button");
//
card.className = "card";
card.style.background = setCss();
// use sessionStorage to check if this color card has already been created
if (sessionStorage.getItem("color") !== card.style.background) {
sessionStorage.setItem("color", card.style.background);
//
copyBtn.className = "copyBtn";
copyBtn.innerHTML = "copy to clipboard";
copyBtn.addEventListener("click", copyToClipboard);
//
delBtn.className = "delBtn";
delBtn.innerHTML = '<img src="img/del-x.svg" alt="del button">';
delBtn.addEventListener("click", delColor);
//
card.append(copyBtn);
card.append(delBtn);
cards.append(card);
}
}
function copyToClipboard() {
let colorToCopy = this.parentNode.style.background;
navigator.clipboard.writeText(colorToCopy);
}
function delColor() {
this.parentNode.remove();
sessionStorage.clear();
}
function clearBoard() {
cards.innerHTML = "";
sessionStorage.clear();
}
// clear sessionStorage on page reload
(function clearStorage() {
sessionStorage.clear()
})();
// listen to color input event
color1.addEventListener("input", setGradient);
color2.addEventListener("input", setGradient);
// generate random colors
btnChange.addEventListener("click", generateRandomColor);
// save gradient color as a card
btnSave.addEventListener("click", createColorCard);
// clear board
btnClear.addEventListener("click", clearBoard);