Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
Múltiples presentaciones de diapositivas javascript y kirby-cms php

Quiero usar varias presentaciones de diapositivas en una página. Mi código javascript está actualmente diseñado solo para una presentación de diapositivas. ¿Cómo puedo adaptar este código para que funcione en varias presentaciones de diapositivas que tienen todos los mismos nombres de clase?

Ya me habían dicho que debía probar clases y constructor de javascript, pero aún no me había atrevido a hacerlo. Me gustaría entender cómo hacer que el código reaccione a la presentación de diapositivas de manera específica en lugar de global.

 document.addEventListener('DOMContentLoaded', () => { const slideshows = document.getElementsByClassName('slideshow'); for (const slideshow of slideshows) { slideshow.firstElementChild.className = 'slides showing '; } let currentSlide = 0; const slides = document.getElementsByClassName('slides'); for (const slide of slides) { slide.addEventListener('click', (event) => { event.preventDefault(); slides[currentSlide].className = 'slides '; currentSlide = (currentSlide + 1) % slides.length; slides[currentSlide].className = 'slides showing'; }); } });
 <!-- kirby cms snippet --> <?php foreach($data->children()->listed() as $slideshow): ?> <section id="<?= $slideshow->id() ?>" class="slideshow"> <?php foreach($slideshow->images() as $image): ?> <div class="slides"> <img src=" <?= $image->resize(null, 500)->url(); ?>" alt="<?=$image->name()?>" data-slide="{<?= $image->resize(null, 180)->url(); ?>}" /> </div> <?php endforeach ?> </section> <?php endforeach ?>

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Para alguien interesado en la solución.

 'use strict'; document.addEventListener('DOMContentLoaded', () => { const slideshows = document.getElementsByClassName('slideshow'); for (const slideshow of slideshows) { const slides = slideshow.getElementsByClassName('slides'); slideshow.firstElementChild.className = 'slides showing '; let currentSlide = 0; for (const slide of slides) { slide.addEventListener('click', (event) => { event.preventDefault(); slides[currentSlide].className = 'slides'; currentSlide = (currentSlide + 1) % slides.length; slides[currentSlide].className = 'slides showing'; }); } } });
 <!-- kirby cms snippet --> <?php foreach($data->children()->listed() as $slideshow): ?> <section id="<?= $slideshow->id() ?>" class="slideshow"> <?php foreach($slideshow->images() as $image): ?> <div class="slides"> <img src=" <?= $image->resize(null, 500)->url(); ?>" alt="<?=$image->name()?>" data-slide="{<?= $image->resize(null, 180)->url(); ?>}" /> </div> <?php endforeach ?> </section> <?php endforeach ?>

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda