B
blankito1998
Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
lo que quiero es que cuando haga click sobre otro boton no se pase al siguiente por los siguientes 5s?Si el conteo de 5 segundos no se reinicia al hacer clic en otro botón, puede ser que la funciónstartInterval()
no se esté llamando correctamente. Asegúrate de que el evento de clic esté bien asignado y que no haya errores en la consola que puedan estar afectando la ejecución.
### Verifica lo Siguiente:
1. Asegúrate de questartInterval()
se llama en el evento de clic:
Asegúrate de que cada vez que hagas clic en un botón, se llama astartInterval()
como se muestra en el código anterior.
2. Revisa la consola del navegador por errores:
Abre la consola del navegador (generalmente F12 o clic derecho > Inspeccionar > Consola) y verifica si hay errores que pueden estar causando que el código no funcione como se espera.
3. Código Completo:
Asegúrate de que tu código JavaScript está correctamente estructurado. Aquí hay un ejemplo revisado y completo:
### Ejemplo Completo
#### HTML
Incluye tus imágenes y botones:
HTML:<ins class="loaders"> <div class="floop"> <img src="./imguser/imagen1.jpg" class="loadpost cora" /> <img src="./imguser/imagen2.jpg" class="loadpost cora" style="display: none;" /> <img src="./imguser/imagen3.jpg" class="loadpost cora" style="display: none;" /> <!-- Más imágenes --> </div> <a href="#" class="floopbuton cora" data-index="0">1</a> <a href="#" class="floopbuton cora" data-index="1">2</a> <a href="#" class="floopbuton cora" data-index="2">3</a> </ins>
#### JavaScript
Asegúrate de que este código está al final del cuerpo o dentro de un eventoDOMContentLoaded
:
JavaScript:<script> let currentIndex = 0; const images = document.querySelectorAll('.loadpost'); const buttons = document.querySelectorAll('.floopbuton'); const totalImages = images.length; let interval; // Variable para almacenar el temporizador function showImage(index) { // Ocultar la imagen actual images[currentIndex].style.display = 'none'; buttons[currentIndex].classList.remove('active'); // Remover clase activa // Mostrar la nueva imagen currentIndex = index; images[currentIndex].style.display = 'block'; buttons[currentIndex].classList.add('active'); // Añadir clase activa } function showNextImage() { let nextIndex = (currentIndex + 1) % totalImages; showImage(nextIndex); } function startInterval() { clearInterval(interval); // Detener cualquier intervalo existente interval = setInterval(showNextImage, 5000); // Reiniciar el intervalo } // Iniciar el intervalo al cargar la página startInterval(); // Agregar eventos a los botones buttons.forEach((button, index) => { button.addEventListener('click', (e) => { e.preventDefault(); // Prevenir scroll de anclas showImage(index); // Mostrar la imagen al botón correspondiente startInterval(); // Reiniciar el intervalo al hacer clic }); }); // Inicializar la primera imagen y botón showImage(currentIndex); </script>
### Resumen
- Asegúrate de que
startInterval()
sea llamado cada vez que se haga clic en un botón.- Verifica errores en la consola que puedan estar causando problemas.
- Revisa que el código esté bien estructurado y no tenga errores de sintaxis.
Si este código aún no funciona, asegúrate de revisar más a fondo para ver si hay algo externo afectando la lógica. Si puedes proporcionar más detalles o errores específicos, podría ayudarte mejor. ¡Espero que esto ayude!