Imagen que se agranda al hacer clic

ab-yz Mensajes publicados 22 Fecha de registro   Estado Miembro Última intervención   -  
 Soloc -
Bonjour à tous, je vous explique mon problème :

Je crée un site Web ; j'ai deux images affichées côte à côte (display: flex). Je veux que lorsque je clique sur l'une des deux images, l'autre disparaisse et l'image sur laquelle on a cliqué s'agrandisse.

Voilà la section du code HTML correspondant :

<section>

<div class="container">

<div class="flex">

<img src="IMG_20170908_110055.jpg" id="imageagrandir" class="image-presentation" alt="image de vitre"/>

<img src="IMG_20170908_110306.jpg" id="imageagrandir2" class="image-presentation" alt="image de vitre"/>

</div>
</div>

</section>

--------------------------------------------------------------------------------------------------

Voilà le code CSS correspondant :

.image-presentation {
margin: 5px;
}

#imageagrandir {
width: 50%;
display: block;
}

#imageagrandir2 {
width: 50%;
display: block;
}

--------------------------------------------------------------------------------------------------

Voilà le code JS :

var image = document.getElementById('imageagrandir');
var imageDeux = document.getElementById('imageagrandir2');

image.addEventListener('click', function() {
if (image.style.width == "50%" ) {
image.style.width = "100%";
imageDeux.style.display = "none";
} else
image.style.width = "50%";
imageDeux.style.display = "block";
});

image2.addEventListener('click', function() {
if (image2.style.width == "50%" ) {
image2.style.width = "100%";
image.style.display = "none";
} else
image2.style.width = "50%";
image.style.display = "block";
});

N'ayant que quelques bases en JS, vous comprendrez pourquoi je n'ai pas fait de fonction (ce qui aurait été plus simple je pense), car je ne sais pas en faire...

Je pense aussi que la technique employée est assez mauvaise, car je joue juste avec le CSS...

Merci d'essayer de le faire de cette façon si possible, et de bien vouloir m'expliquer ce que vous faites :)

Merci par avance :)

1 respuesta

  1. Soloc
     
    Hola,
    al probar su código debe abrir la consola (herramientas de desarrollo accesibles desde los menús del navegador, pestaña consola). Esta permite mostrar los errores y rápidamente verá de dónde proviene su error.

    Una pista, verifique los nombres de sus variables.
    Y la consola con depuración es una herramienta imprescindible para no perder tiempo revisando su código.

    Está utilizando funciones:

    image2.addEventListener('click', function() { if (image2.style.width == "50%" ) { image2.style.width = "100%"; image.style.display = "none"; } else image2.style.width = "50%"; image.style.display = "block"; }); /* addEventListener es una función (del lenguaje, predefinida para facilitar) que toma entre paréntesis otra función llamada anónima puesto que no se le ha dado un nombre (lo cual puede ser útil para ciertos empleos pero no permite reutilizarla):*/ function(){ //if(image //.... } // estructura de una función en JavaScript function nomDeLaFunction( "aquí parámetro/s opcional e ilimitados" ){ //-- cuerpo de la función, en resumen lo que debe hacer y el uso de los parámetros eventuales }//-- la última llave indica el fin de la función //-- Y como se vio en su script, se pueden anidar funciones unas dentro de otras, //-- sin embargo hay reglas que deben tenerse en cuenta como "la duración de vida" de cada función //-- de hecho, una función una vez leída y resuelta ya no existe y su contenido y lo que sucede ahí no //-- es accesible directamente (hay un medio para sortear esta restricción) desde el exterior de la misma //-- Ustedes saben todo o casi todo sobre las funciones, //--- aunque existen muchas maneras de escribir funciones y objetos (otro concepto //-- importante en la organización del programa) 


    "También pienso que la técnica que estoy usando es bastante mala, porque solo juego con el CSS... "
    Por otro lado, mientras funcione, pero esencialmente JavaScript está ahí para manipular la página: HTML y CSS (el DOM) sobre todo, el resto son "facilidades" de programación (variables, pruebas/condiciones y otras estructuras lógicas).

    https://www.alsacreations.com/astuce/lire/1436-console-javascript.html
    0
    1. ab-yz
       
      Hola, muchas gracias por tu respuesta.

      He visto un error en una variable, pero el código aún no funciona. Y te confieso que no sé muy bien cómo abordar una función... Ayúdame por favor ;)
      El problema es con la imagen2. Cuando hago clic en ella, ambas imágenes se agrandan y la imagen no desaparece...
      0
    2. Soloc
       
      "He visto un error en una variable,"
      ¡eh, no es solo uno! de ahí la utilización de la consola que te muestra TODOS tus errores de código.

      ¿Ayudar a qué? Si es para hacer el trabajo por ti, eso no es ayuda y no tengo tiempo para eso...

      En cualquier caso, no estás muy lejos según lo que dices si funciona, solo necesitas dirigirte a la imagen correcta para cada instrucción o bloque de instrucciones.

      Para una función tienes la explicación detallada en mi mensaje anterior, de lo contrario, solo necesitas abrir cualquier tutorial o curso para principiantes en programación. Pero ese no es el tema, era para responder que no sabías usar una función cuando ya hay varias en tu script, así que lo haces sin saberlo. Y no es muy complicado, al contrario, simplifica muchas cosas sin siquiera necesidad de llegar hasta ahí: https://es.wikipedia.org/wiki/Programación_funcional
      0