Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

184
Views
Todas las imágenes se hicieron visibles con la misma identificación después de 5 segundos con javascript

Tengo una cuadrícula de imágenes de productos y me gustaría que todas las imágenes con la misma ID se hicieran visibles después de 5 segundos con javascript. De momento solo funciona con la primera imagen mientras que las demás quedan ocultas y todas tienen el mismo id. Desearía que funcionara para todas las imágenes con la misma ID.

/ ejemplo html /

 <div class"product1 image"> <img src="image1.jpg" id="myid"> </div> <div class"product2 image"> <img src="image2.jpg" id="myid"> </div>

/ ejemplo css /

 .image { visibility: hidden; }

/ ejemplo js /

 <script type="text/javascript"> function change () { var image = document.getElementById ("myid"); image.style.visibility = "visible"; } setTimeout ("change ();", 5000); </script>
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Solo debe tener un elemento con una identificación particular en su página. getElementById devuelve un solo elemento, por lo que es probable que solo encuentre el primer elemento en la pantalla.

Puede darles una clase css con el mismo nombre o usar un atributo data-* para identificarlos, por ejemplo

 <img src="image2.jpg" data-image-group="bob" />

Y esto devolvería todos los elementos que coincidan con ese nombre de grupo:

 let matchedImages = document.querySelectorAll("[data-image-group='bob']") matchedImages .forEach(function(image) { image.style.visibility = "visible"; });

Alternativamente (y este podría ser el mejor enfoque), considere un enfoque CSS puro para lidiar con este problema de visualización y use una animación para ocultarlos inicialmente y luego desaparecer. Se puede encontrar una muestra de esto en esta respuesta:

Uso de CSS para un efecto de aparición gradual en la carga de la página

about 4 years ago · Juan Pablo Isaza Report

0

Algunos problemas con su código. Primero te estás perdiendo = al establecer la clase de div . Entonces los id s deben ser únicos. Probablemente la solución más fácil después de solucionar los problemas menores es usar querySelectorAll y query img que son elementos secundarios de la clase .image que ya está configurada.

 function change () { var images = document.querySelectorAll(".image img"); images.forEach(image=>image.style.visibility = "visible"); } setTimeout (change, 5000);
 .image { visibility: hidden; } img{ width: 50px; }
 <div class="product1 image"> <img src="https://logos-download.com/wp-content/uploads/2019/01/JavaScript_Logo.png"> </div> <div class="product2 image"> <img src="https://blog.jeremylikness.com/blog/2019-03-05_typescript-for-javascript-developers-by-refactoring-part-1-of-2/images/1.jpeg"> </div>

about 4 years ago · Juan Pablo Isaza Report

0

El identificador de identificación debe ser único y aplicarse en un solo elemento. No puede especificar el mismo valor de id para más de 1 elemento. Puede, pero no funcionaría y es una mala práctica de HTML. Debe usar clases para tales casos. Puede dar un nombre de clase de image para todos sus elementos y luego seleccionarlos por nombre de clase usando JavaScript:

 <div class="product1 image"> <img src="image1.jpg" class="image"> </div> <div class="product2 image"> <img src="image2.jpg" class="image"> </div>
 <script type="text/javascript"> function change () { var images = document.getElementsByClassName("myid"); images.forEach(element => element.style.visibility = "visible"); } setTimeout ("change ();", 5000); </script>
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!