-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsketch.js
245 lines (173 loc) · 8.94 KB
/
sketch.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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
const botonClear = document.querySelector('#limpiaPantalla'); // variable que se utiliza para llamar al boton "clean" del html para usar en JS
botonClear.addEventListener('click',limpiaPantalla); //evento agregado al boton
let click = true; // se usa para hacer evento al dar click o no
let colorInput = document.getElementById("colorHex"); //variable que recibe el color introducido por picker html
let hexOutput = document.getElementById("hexa");//variable que muestra el color seleccionado
colorInput.addEventListener("input",muestraColor); //funcion que al seleccionar color invoca muestraColor
function muestraColor(){//funcion que selecciona color y muestra en pantalla cual color se seleccionó
let colorInputValue = colorInput.value;
hexOutput.value = colorInputValue;
changeColor(colorInput.value);//invoca a la funcion cambia de color para pintar los cuadros del color seleccionado
};
let colorChoice = 'black'; //color por defecto para pintar los cuadros
function changeColor(choice){ //funcion global que recibe la decision tomada por el usuario para cambiar colores
colorChoice = choice; //cacha la variable
}
function limpiaPantalla(){ //funcion que al dar click en clean reinicia a valores default
botonClear.onmouseover = actualizaTabla(); // al dar clic en boton actualiza la tabla
rango.value =16; //cambia la barra de rango a 16 default
valorPantalla.innerHTML = 16; //muetra en pantalla el valor default
genera_tabla(); //genera la tabla default
}
const container = document.querySelector('#container'); //variable que llama al contenedor
const divContainer = document.querySelector('#divContainer'); // variable que selecciona al div container
divContainer.setAttribute("border","2"); // se le coloca un borde a al div el cual delimita la tabla
divContainer.style.borderColor = "black"; //borde negro de la tabla
container.appendChild(divContainer); //lo muestra en html
let valorPantalla = document.querySelector('#valorPantalla'); //crea una variable que se relaciona con el valor a mostrar en pantalla
valorPantalla.innerHTML = rango.value; //recibe el valor default de rango
rango.oninput = function(){ //cuando se da clic se realizan las lineas de código
let rango = document.querySelector("input");//llama a la etiqueta input y toma el valor default
let valorPantalla = document.querySelector('#valorPantalla'); //crea una variable que se relaciona con el valor a mostrar en pantalla
valorPantalla.innerHTML = rango.value; //recibe el valor default de rango
valorPantalla = rango.value; // recibe el valor de la barra
valorPantalla.innerHTML = rango.value; // muestra en pantalla el valor seleccionado
console.log(rango.value);
console.log(typeof rango.value);
console.log(typeof valorPantalla);
rango.onmouseover= actualizaTabla(); //cuando se da clic en la barra le pasa el valor a la tabla para que se genera una tabla nueva con los valores introducidos
rango.onmouseleave= genera_tabla2(valorPantalla);//al soltar el clic muestra en pantalla el valor seleccionado
function genera_tabla2(valorPantalla) { //funcion que hace una tabla nueva
let cambiarBorde = document.querySelector("#quitarBordes"); // llama al boton quita bordes
cambiarBorde.onclick = function(){ // se le añade la funcion quitar bordes al dar clic
cambiaBorde(); // invoca a la funciones cambia borde
}
let colocarBordes = document.querySelector("#colocaBordes"); //llama al boton coloca bordes
colocarBordes.onclick = function(){
colocarBorde(); //incova a la funcion coloca bordes
}
let defaultValor =valorPantalla; // toma el valor del rango para hacer las cuadriculas
// Obtener la referencia del elemento body
const body = document.getElementsByTagName("divContainer")[0];
// Crea un elemento <table> y un elemento <tbody>
const tabla = document.createElement("table");
const tblBody = document.createElement("tbody");
// Crea las celdas
for (let i = 0; i <defaultValor; i++) {
// Crea las hileras de la tabla
let hilera = document.createElement("tr");
hilera.style.borderColor = 'F3F3F3','1';
for (let j = 0; j <defaultValor; j++) {
// Crea un elemento <td> y un nodo de texto, haz que el nodo de
// texto sea el contenido de <td>, ubica el elemento <td> al final
// de la hilera de la tabla
let celda = document.createElement("td");
celda.style['background-color']= 'white';
celda.style.borderColor = 'F3F3F3','1';
celda.addEventListener('mousemove',cambiarColor); // funcion que cambia de color los cuadros
function cambiarColor(){
if(click){ //al detectar click
if(colorChoice === 'random'){ //pinta de color aleatorio
celda.style['background-color']= `hsl(${Math.random() * 360}, 100%,50%)`;
} else
celda.style['background-color']= colorChoice; // pinta del color seleccionado en los botones
}
}
hilera.appendChild(celda);
}
// agrega la hilera al final de la tabla (al final del elemento tblbody)
tblBody.appendChild(hilera);
}
// posiciona el <tbody> debajo del elemento <table>
tabla.appendChild(tblBody);
// appends <table> into <body>
divContainer.appendChild(tabla);
// modifica el atributo "border" de la tabla y lo fija a "2";
tabla.setAttribute("border", "3");
tabla.setAttribute("height",500);
tabla.setAttribute("width",500);
tabla.style.borderSpacing ="0px";
function cambiaBorde(){ // funcion que quita bordes
console.log("si sirvo");
tabla.setAttribute("border","0");
}
function colocarBorde(){ //funcion que coloca bordes
console.log("si sirvo tambien");
tabla.setAttribute("border","3");
}
}
}
function genera_tabla() { //funcion que genera tabla con valore predeterminado de 16
let cambiarBorde = document.querySelector("#quitarBordes");
cambiarBorde.onclick = function(){
cambiaBorde();
}
let colocarBordes = document.querySelector("#colocaBordes");
colocarBordes.onclick = function(){
colocarBorde();
}
let defaultValor = 16;
// Obtener la referencia del elemento body
const body = document.getElementsByTagName("divContainer")[0];
// Crea un elemento <table> y un elemento <tbody>
const tabla = document.createElement("table");
const tblBody = document.createElement("tbody");
// Crea las celdas
for (let i = 0; i <defaultValor; i++) {
// Crea las hileras de la tabla
let hilera = document.createElement("tr");
hilera.style.borderColor = 'F3F3F3','1';
for (let j = 0; j <defaultValor; j++) {
// Crea un elemento <td> y un nodo de texto, haz que el nodo de
// texto sea el contenido de <td>, ubica el elemento <td> al final
// de la hilera de la tabla
let celda = document.createElement("td");
celda.style['background-color']= 'white';
celda.style.borderColor = 'F3F3F3','1';
celda.addEventListener('mousemove',cambiarColor);
function cambiarColor(){
if(click){
if(colorChoice === 'random'){
celda.style['background-color']= `hsl(${Math.random() * 360}, 100%,50%)`;
} else
celda.style['background-color']= colorChoice;
};
}
hilera.appendChild(celda);
}
// agrega la hilera al final de la tabla (al final del elemento tblbody)
tblBody.appendChild(hilera);
}
// posiciona el <tbody> debajo del elemento <table>
tabla.appendChild(tblBody);
// appends <table> into <body>
divContainer.appendChild(tabla);
// modifica el atributo "border" de la tabla y lo fija a "2";
tabla.setAttribute("border", "3");
tabla.setAttribute("height",500);
tabla.setAttribute("width",500);
tabla.style.borderSpacing ="0px";
function cambiaBorde(){
console.log("si sirvo");
tabla.setAttribute("border","0");
}
function colocarBorde(){
console.log("si sirvo tambien");
tabla.setAttribute("border","3");
}
}
function actualizaTabla(){ // funcion que actualiza tabla al mover el rango
const table = document.querySelector("table");
console.log(table);
table.remove();
}
let coloring = document.querySelector("#ColoringOrNot"); //texto que muestra si esta coloreando o no
coloring.value = "Mode: Coloring";
document.querySelector("body").addEventListener("click", () => {
click = !click;
if(click){
coloring.value = "Mode: Coloring";
} else
coloring.value = "Mode: Not Coloring";
});
genera_tabla(); //funciones que hace la tabla predeterminada