-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
54 lines (46 loc) · 1.8 KB
/
main.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
const grid = new Muuri('.grid', {
layout: {
rounding: false
}
});
window.addEventListener('load', () => {
grid.refreshItems().layout();
document.getElementById('grid').classList.add('imagenes-cargadas');
// Agregamos los listener de los enlaces para filtrar por categoria.
const enlaces = document.querySelectorAll('#categorias a');
enlaces.forEach((elemento) => {
elemento.addEventListener('click', (evento) => {
evento.preventDefault();
enlaces.forEach((enlace) => enlace.classList.remove('activo'));
evento.target.classList.add('activo');
const categoria = evento.target.innerHTML.toLowerCase();
categoria === 'sc' ? grid.filter('[data-categoria]') : grid.filter(`[data-categoria="${categoria}"]`);
});
});
// Agregamos el listener para la barra de busqueda
document.querySelector('#barra-busqueda').addEventListener('input', (evento) => {
const busqueda = evento.target.value;
grid.filter( (item) => item.getElement().dataset.etiquetas.includes(busqueda) );
});
// Agregamos listener para las imagenes
const overlay = document.getElementById('overlay');
document.querySelectorAll('.grid .item img').forEach((elemento) => {
elemento.addEventListener('click', () => {
const ruta = elemento.getAttribute('src');
const descripcion = elemento.parentNode.parentNode.dataset.descripcion;
overlay.classList.add('activo');
document.querySelector('#overlay img').src = ruta;
document.querySelector('#overlay .descripcion').innerHTML = descripcion;
});
});
/*
// Eventlistener del boton de cerrar
document.querySelector('#btn-cerrar-popup').addEventListener('click', () => {
overlay.classList.remove('activo');
});
// Eventlistener del overlay
overlay.addEventListener('click', (evento) => {
evento.target.id === 'overlay' ? overlay.classList.remove('activo') : '';
});
*/
});