Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

329
Visualizações
¿Cómo mostrar una imagen aleatoria diferente con un botón sin reiniciar la página?

Quiero que mi ventana emergente (cuando se hace clic en un botón) muestre una imagen aleatoria de mi carpeta cada vez que hago clic en el botón. Usé html, css y javascript para mi sitio web.

El problema: es la misma imagen aleatoria cada vez. Solo si reinicio la página, se muestra una imagen aleatoria diferente.

Lo que funciona en este momento: cuando hago clic en el botón de inicio, aparece una ventana emergente con una imagen aleatoria de esa carpeta (tal como la quiero), pero si hago clic en el botón de cerrar en mi imagen aleatoria y presiono el botón de inicio nuevamente, la vuelve a aparecer la misma imagen. Solo si reinicio mi página, se mostrará una nueva imagen aleatoria cuando presione el botón de inicio. Pero esa imagen permanece igual, cuando cierro la ventana emergente y quiero comenzar de nuevo.

Quiero una imagen aleatoria cada vez que presiono el botón de inicio sin tener que reiniciar la página.

¿Uso un booleano en javascript? ¿Puedo reiniciar la función por sí sola? He visto preguntas similares todo el tiempo, pero ninguna de las soluciones me ha funcionado.

(el botón de inicio también es una imagen pero es un botón) Lo siento si el código tiene un formato extraño, soy nuevo en el código <3

¡¡Gracias!!

Mi código:

HTML:

 <div class="popup" id="popup-1"> <div class="overlay"> </div> <div class="content"> <img class="imagelook"/> <!-- image is start-button --> <div class="close-btn" onclick="togglePopup()" onclick="generateRandomPicture(array)">&times; <!-- random image from folder --> </div> </div> </div> <body> <button type="button" onclick="togglePopup()" class="imglook"></button> <!-- the start-button --> </body>

JavaScript:

 function togglePopup(){ document.getElementById("popup-1").classList.toggle("active"); } const imageArray =[ "zettel/9.png", "zettel/8.png", "zettel/10.png", "zettel/11.png", "zettel/12.png", "zettel/13.png" ]; const image = document.querySelector("img"); window.onload = () => generateRandomPicture(imageArray); function generateRandomPicture(array){ let randomNum = Math.floor(Math.random() * imageArray.length); image.setAttribute("src", imageArray[randomNum]); }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Quizás lo siguiente podría ayudar: codificado para permitir múltiples elementos popup junto con múltiples elementos de button para activar la visualización de diferentes imágenes en el div popup respectivo

 const images = [ "zettel/9.png", "zettel/8.png", "zettel/10.png", "zettel/11.png", "zettel/12.png", "zettel/13.png" ]; const _CN='active'; const bttnclickhandler=function(e){ // generate random image based upon array let imgsrc=images[mt_rand(0,images.length-1)]; // assign image the new src this.previousElementSibling.querySelector('img').src=imgsrc; this.previousElementSibling.classList.add(_CN); console.info(imgsrc) }; const closeclickhandler=function(e){ e.target.closest('.popup').classList.remove(_CN); this.previousElementSibling.src=''; console.clear(); }; // generate a random number between a & b const mt_rand=(a,b)=>Math.floor( Math.random() * ( b - a + 1 ) + a ); // assign listeners to all pertinent elements document.querySelectorAll('button.imglook').forEach(n=>n.addEventListener('click',bttnclickhandler)); document.querySelectorAll('div.close-btn').forEach(n=>n.addEventListener('click',closeclickhandler)); document.querySelectorAll('div.popup').forEach(n=>{ n.querySelector('img').src=images[mt_rand(0,images.length-1)] })
 .active{background:pink} .popup{margin:1rem;} .imglook{padding:1rem}
 <div class="popup"> <div class="overlay"></div> <div class="content"> <img class="imagelook" /> <div class="close-btn">&times;</div> </div> </div> <button type="button" class="imglook"></button> <div class="popup"> <div class="overlay"></div> <div class="content"> <img class="imagelook" /> <div class="close-btn">&times;</div> </div> </div> <button type="button" class="imglook"></button>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda