JavaScript - SELECCIONAR IMAGEN Y APLIARLE UNA CLASE CON CLICK JAVASCRIPT

 
Vista:
sin imagen de perfil

SELECCIONAR IMAGEN Y APLIARLE UNA CLASE CON CLICK JAVASCRIPT

Publicado por Miriam (6 intervenciones) el 04/05/2022 22:44:46
Tengo este código html con tres imágenes, a las que no puedo modificar ni agregar nada:

<div id="player">
<img class="select" src="img/manzana.png" />
<img class="noSelect" src="img/pera.png" />
<img class="noSelect" src="img/ciruela.png" />
</div>

Necesito poder hacer clic en Javascript con addEventListener en cualquiera de las imágenes y cuando selecciono una de las imágenes aparece un borde rojo alrededor con la clase .select. y al resto de imágenes no seleccionadas se les aplica la clase .noselect

.select{
border: 5px solid red;
opacity: 1;
}

.noSelect{
opacity: 0.5;
}

He intentado hacerlo siguiendo esto pero no funciona y no se como continuar.

const btnManzana = document.getElementsByTagName("img")[0];
const btnPera = document.getElementsByTagName("img")[1];
const btnCiruela = document.getElementsByTagName("img")[2];

btnManzana.addEventListener("click", () => {
});

¿Puede alguien ayudarme?

Muchísimas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

SELECCIONAR IMAGEN Y APLIARLE UNA CLASE CON CLICK JAVASCRIPT

Publicado por Alejandro (532 intervenciones) el 05/05/2022 16:12:41
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
No ibas tan mal, te falto el código del evento, necesitas:
1
2
classList.remove();
classList.add();

Aquí lo tienes completo, lo importante es que lo entiendas.
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
<style>
	.select{
		border: 5px solid red;
		opacity: 1;
	}
 
	.noSelect{
		opacity: 0.5;
	}
</style>
<div id="player">
	<img class="select" src="img/manzana.png" />
	<img class="noSelect" src="img/pera.png" />
	<img class="noSelect" src="img/ciruela.png" />
</div>
<script>
	for(imagen of document.querySelectorAll('#player>img')){
		imagen.addEventListener('click', clickImagen);
	}
 
	function clickImagen(){
		for(imagen of document.querySelectorAll('img.select')){
			imagen.classList.remove('select');
			this.classList.add('noSelect');
		}
		this.classList.remove('noSelect');
		this.classList.add('select');
	}
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

SELECCIONAR IMAGEN Y APLIARLE UNA CLASE CON CLICK JAVASCRIPT

Publicado por Miriam (6 intervenciones) el 05/05/2022 19:41:15
Muchas gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ScriptShow
Val: 2.019
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

SELECCIONAR IMAGEN Y APLIARLE UNA CLASE CON CLICK JAVASCRIPT

Publicado por ScriptShow (692 intervenciones) el 05/05/2022 18:09:05
Saludos,

por si se precisa una alternativa "muy" compatible con tod@s...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<style>
#player .noselect { border: 5px solid transparent; opacity: 0.5; }
#player .select { border: 5px solid red; opacity: 1; transition: all 0.8s; }
</style>
 
<script>
var p=null;
function test(e) {
if (p != null) p.className="noselect";
p=e;
e.className="select";
}
</script>
 
<div id="player">
<img class="noselect" src="img/manzana.png" onclick="test(this)" tabindex="1" />
<img class="noselect" src="img/pera.png" onclick="test(this)" tabindex="2" />
<img class="noselect" src="img/ciruela.png" onclick="test(this)" tabindex="3" />
</div>

Espero sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

SELECCIONAR IMAGEN Y APLIARLE UNA CLASE CON CLICK JAVASCRIPT

Publicado por Miriam (6 intervenciones) el 05/05/2022 19:41:26
Muchas gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar